标签: regex string
如果周围没有短划线字符,我需要编写一个RegEx来匹配“1-234-5678”字符串。
我有以下RegEx:
\b\d\-\d{3}\-\d{4}\b
现在这个工作正常,并在下面的字符串中正确匹配“1-234-5678”:
RegEx也正确地不匹配以下字符串中的“1-234-5678”:
但问题是它也匹配以下字符串:
这是因为\b在破折号之前和之后匹配。
\b
如果前面或后面有短划线,如何消除匹配?
答案 0 :(得分:1)
使用否定的lookbehind和负向前瞻来检查上述格式是否前面跟着-符号,
-
(?<!-)\b\d\-\d{3}\-\d{4}\b(?!-)
DEMO