我有代码与一个非常简单的字符串模式匹配:
XXnnnnnnnnn (2 alphanumeric, 9 numeric).
我正在使用这个正则表达式:
\w{2}\d{9}.
现在我需要通过匹配任何以常量标记' AY' 开头的字符串以及任何带有11个重复字符的字符串(例如' 11111111111'或' 00000000000')来排除.
我怎样才能使用正则表达式排除子模式?
试试这个
\b(?!AY)(?!(\w)\1{10})\w{2}\d{9}\b
Run Code Online (Sandbox Code Playgroud)
在Regexr上看到它
基本上我只在你的正则表达式中添加了\b 单词boundary以避免部分匹配.
通过使用负前瞻断言来实现您的限制.
(?!AY) 如果模式以"AY"开头,则断言失败
(?!(\w)\1{10}) 如果第一个单词字符重复10次,则断言失败.
在regular-expressions.info上查看断言