perl regex / x开关

eon

尝试匹配“ JOB:水果342毫无用处”

该代码匹配:

$line =~ /^JOB: fruit (\d+) apples to get/

但是当我添加/ x开关时

$line =~ /^JOB: fruit (\d+) apples to get/x

不匹配。

我看着/ x开关,它说它只是让您发表评论,所以我不知道为什么添加/ x阻止我的正则表达式匹配

hmatt1

/x修饰符告诉Perl忽略未在正则表达式躲过最空白。

例如,让我们专注于apples to get您可以将其与:

$line =~ /apples to get/

但是,如果您尝试:

$line =~ /apples to get/x

然后Perl将忽略空格。所以这就像尝试匹配applestoget

您可以在perlre中了解更多信息他们有一个很好的示例,说明如何使用修饰符使代码更具可读性。

 # Delete (most) C comments.
$program =~ s {
        /\* # Match the opening delimiter.
        .*? # Match a minimal number of characters.
        \*/ # Match the closing delimiter.
} []gsx;

他们还提到了如何#在使用/x修饰符匹配空白或再次匹配空白

/ x的使用意味着如果您希望模式中包含真实的空格或#个字符(在括号字符类之外,不受/ x的影响),则必须将其转义(使用反斜杠或\ Q ... \ E)或使用八进制,十六进制或\ N {}转义对其进行编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章