我试图获得一个RegExp父权,在这里,我从RegExp模式的中间排除了某个子模式。例如,我希望我的模式以ABC开头,以XYZ结尾,并排除ABC和XYZ之间有123的任何字符串。请注意,如果123位于ABC和XYZ之间,则不会有匹配。
例如:
ABC45123XYZ (No-Match)
ABCfg12XYZ (Match)
ABC9321%$XYZ (Match)
ABC123XYZ (No-Match)
ABC001234XYZ(No-Match)我尝试了下面的模式,并对其进行了负面展望。
rex.Pattern = "ABC.+?(?!123).+?XYZ"但那不管用。实现这一目标的正确方法是什么?
发布于 2014-08-08 14:00:02
您可以通过一个负前瞻来实现这一点。
ABC(?:(?!123).)*XYZVisualization:

解释:
ABC # Match literal chars 'ABC'
(?: # Begin non-capturing group
(?! # Negative lookahead: if not followed by
123 # Match Literal chars '123'
) # End of negative lookahead
. # Advance one character at a time
)* # Repeat the group zero or more times
XYZ # Match literal chars 'XYZ'演示
发布于 2014-08-08 14:00:23
(?!ABC.*?123.*?XYZ)ABC.*?XYZ进食前检查string.Negative展望http://regex101.com/r/mD7jN1/1
发布于 2014-08-08 14:01:51
给你:
ABC(.(?!123))+?XYZ你需要把它放在括号里,在它前面放一个点(每个标志).然后,它将尝试找到没有后面跟着123的任何标志;)
https://stackoverflow.com/questions/25205062
复制相似问题