【发布时间】:2014-05-01 07:04:24
【问题描述】:
在使用 Perl 正则表达式将字符串切割成可用片段时,我需要匹配除特定模式之外的所有内容。在Perl Monks找到这个提示后我解决了:
/^(?:(?!PATTERN).)*$/; # Matches strings not containing PATTERN
虽然我解决了我最初的问题,但我对它的实际工作原理知之甚少。我查了perlre,但是有点太正式了,没把握。
Regular expression to match a line that doesn't contain a word? 对理解有很大帮助,但为什么在我的示例中是 . 和 ?: 以及外括号是如何工作的?
有人可以分解正则表达式并用简单的语言解释它是如何工作的吗?
【问题讨论】:
-
not /PATTERN/为您提供最佳服务