标签: regex
我有这个:
172\.\d{1,3}\.\d{1,3}\.\d{1,3}(?!:|_)
匹配172或:
172
:
_
当应用于172.22.22.22:时,如果我不希望发生匹配,它会在172.22.22.2上匹配。 当我执行cat(?!:|_)之类的操作时,字符串cat_不返回任何匹配项。我错过了一些明显的东西吗?
172.22.22.22:
172.22.22.2
cat(?!:|_)
cat_
答案 0 :(得分:0)
退出点,然后检查字符串的结尾:
172\.\d{1,3}\.\d{1,3}\.\d{1,3}(?!:|_)$
Live demo
答案 1 :(得分:0)
您需要使用:
172\.\d{1,3}\.\d{1,3}\.\d{1,3}(?![\d:_])
即。确保负向前瞻仅在所有数字后匹配冒号或下划线。
答案 2 :(得分:0)
您需要使用possessive quantifier来阻止其备份。
172\.\d{1,3}\.\d{1,3}\.\d{1,3}+(?!:|_) ^
DEMO