【发布时间】:2014-06-03 23:27:06
【问题描述】:
我很难用正则表达式阅读旧版 Perl 代码,
$string =~ m/^\(\?\<\!\\S\)/ && $string =~ m/\(\?\!\\S\)$/
我确实了解正则表达式中正面/负面展望的基本概念, 但是,我仍然对这里的真正意图感到非常困惑。
有人能解释一下吗? 谢谢!
【问题讨论】:
-
第一步:当你想使用正则表达式特殊字符时不要转义它们。
-
您是否尝试过任何在线正则表达式解释器? (例如,rick.measham.id.au/paste/explain.pl)您会注意到这些正则表达式中没有前瞻或后瞻。
-
换句话说,只有当您想将其表示为文字字符时,您才需要转义一个特殊字符(对于正则表达式引擎)。
-
@RayToal 该正则表达式解释器基于 Perl 模块 YAPE::Regex::Explain,该模块仅支持 12 年前 Perl 5.6 中当前的 Perl 正则表达式语法子集。它适用于这种情况,但不再是一个好的通用解决方案。
-
事实上,它无法解释米勒的回答中
\Q和\E做了什么。