尝试匹配“ JOB:水果342毫无用处”
该代码匹配:
$line =~ /^JOB: fruit (\d+) apples to get/
但是当我添加/ x开关时
$line =~ /^JOB: fruit (\d+) apples to get/x
不匹配。
我看着/ x开关,它说它只是让您发表评论,所以我不知道为什么添加/ x阻止我的正则表达式匹配
该/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] 删除。
我来说两句