希望你能在这里提供帮助
我希望匹配以下正则表达式中的字符串,\ 2与\ 4。
不匹配^(\w{2,5}[FGHJKMNQUVXZ])(\d)-(\w{2,5}[FGHJKMNQUVXZ])(\d)$
我尝试了一个char类:
^(\w{2,5}[FGHJKMNQUVXZ])(\d)-(\w{2,5}[FGHJKMNQUVXZ])[^\2]$
但我的正则表达式库(C ++ boost)抱怨\ 2是一个无效的八进制文件。
我认为答案就是答案,
^(\w{2,5}[FGHJKMNQUVXZ])(\d)-(\w{2,5}[FGHJKMNQUVXZ])(?!\2)$
也没有工作。
任何线索?
非常感谢
TC
答案 0 :(得分:3)
(?!\2)
是零宽度断言,不消耗字符。由于它后跟$
,这意味着如果该地点中确实有一个数字,即使它与\2
不匹配,正则表达式也不会匹配。试一试:
^(\w{2,5}[FGHJKMNQUVXZ])(\d)-(\w{2,5}[FGHJKMNQUVXZ])(?!\2)(\d)$