[英]Perl regular expression with exception
例如,我有字符串“ domain”,“ asset44.domain”,“ asset.domain”,“ domain1”
我需要用正则表达式匹配所有字符串,其中“ domain”一词是这样,但有一些例外:我不需要匹配“ asset44.domain”和“ domain1”。
首先我做了if ($_ =~ /domain/io) {
它匹配所有字符串
在我输入if ($_ =~ /domain(?!1)/io) {
它匹配所有字符串,但“ domain1”除外
而现在,我不明白如何除“ asset44.domain”外,而保持匹配“ asset.domain”。
PS asset44.domain可能还有另一个数字:例如asster56.domain。
PPS解决方案: (?<!asset)(?<!\\d\\.)domain(?!1)
https://regex101.com/r/sF2qG3/1
只是一些想法:
if ( $_ =~ /domain/ and (not $_ =~ /domain1/ or $_ =~ /asset44/) ){
# do whatever
}
更新:
[^asset[0-9]domain[^domain1]
这是一个演示: regex101.com/r/rJ4vC6/1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.