【发布时间】:2019-08-29 18:19:28
【问题描述】:
我在 RE2 不可用时遇到了问题。 使用普通的正则表达式,我会做这样的事情:
^(?!text|someText|.*cont).*
排除以“text”、“someText”开头并包含“cont”的行。不幸的是,RE2 不支持负前瞻。
我们如何解决这个问题?
【问题讨论】:
标签: regex regex-negation re2
我在 RE2 不可用时遇到了问题。 使用普通的正则表达式,我会做这样的事情:
^(?!text|someText|.*cont).*
排除以“text”、“someText”开头并包含“cont”的行。不幸的是,RE2 不支持负前瞻。
我们如何解决这个问题?
【问题讨论】:
标签: regex regex-negation re2
您可以通过使用正匹配来处理负前瞻条件,然后期待它的否定。例如:
$input = "text is good";
if ($input !~ m/^(text|someText).*$/ && $input !~ m/^.*cont.*$/) {
print "MATCH";
}
else {
print "NO MATCH";
}
【讨论】: