[英]Regex to match several strings but not specific ones
我正在与Perl合作,以在符合条件的每一行上搜索和匹配字符串,并希望省略包含特定字符串的行。 我的意思是:说我匹配字符串Mouse,但是如果该行匹配X123Y,我想省略。 可以在行的任何位置找到任何一个字符串。
Stackoverflow Mouse forum. <--Match
Stackoverflow -Mouse- forum. <--Match
Stackoverflow X123Y forum Mouse. <--Should not Match
Stackoverflow XYZ forum Mouse. <--Should not Match
我希望这可以解决问题,因为我使用的是负前瞻,但似乎并没有解决问题。
(?i)(\WMouse\W|(?!(X123Y|XYZ)).*$)
我做的事情根本上是我猜错了,但现在看不到。
有什么帮助吗?
您可以使用丢弃技术来保留所需的内容,并丢弃不需要的模式。
例如,使用此正则表达式:
.*X123Y.*|.*XYZ.*|(.*Mouse.*)
您将获取最合适的模式的内容,而丢弃其他模式。
这个想法是使用:
discard patt 1 | discard patt 2 | discard patt n | (grab this pattern)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.