你如何评论 Perl 正则表达式?

Posted

技术标签:

【中文标题】你如何评论 Perl 正则表达式?【英文标题】:How do you comment a Perl regular expression? 【发布时间】:2010-10-12 13:54:22 【问题描述】:

如何将 cmets 放入 Perl 正则表达式中?

【问题讨论】:

另见Maintaining Regular Expressions 【参考方案1】:

使用 /x 修饰符:

my $foo = "zombies are the bombies";
if ($foo =~ /
             zombie  # sorry pirates
            /x ) 
    print "urg. brains.\n";

另见 perlfaq6 中的first question。

同时阅读perlre 的所有内容也不会有什么坏处。

【讨论】:

我应该投票给你,因为你比我少了 ,但我必须投票给你这个聪明的例子。 被骗了?发布一个空答案,然后填写它,以获得那个低时间戳?我想不出还有什么可以称为作弊的事情。 是的 - 好吧,无论如何,整个“否决票”的想法都是一个笑话。我只是讨厌当我在一个聪明的例子中途,然后我看到浏览器顶部的“发布新答案”闪存区域。就是那个“纽曼”!时刻。 嗯,我有这个问题,然后我找到了答案,我想其他人可能也有这个问题。而且这并不算太不道德,因为除非有人投票支持我,否则我不会因任何事情而获得任何声誉。 为了清晰起见,您应该使用 表示多行 IMO。【参考方案2】:

即使没有 /x 修饰符,您也可以将 cmets 括在 (?# ... ) 中:

my $foo = "zombies are the bombies";
if ( $foo =~ /zombie(?# sorry pirates)/ ) 
    print "urg. brains.\n";

【讨论】:

我对这种风格的一个问题是它对眼睛很硬。除非您添加 /x 修饰符,否则 (?# 注释) 之前或之后的空格很重要,在这种情况下,无论如何我都会回到 /x 修饰符。

以上是关于你如何评论 Perl 正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

Perl正则表达式:开篇

使用 sed 或 Perl 来注释 XML 块的正则表达式

如何分析 Perl 正则表达式?

老男孩带你了解perl正则表达式中的零宽断言

Perl 正则表达式 |如何从文件中排除单词

如何 grep/perl/awk 重叠正则表达式