我有一个找到IP的regex:
'[0-9]+(?:\.[0-9]+){3}'
现在我需要让一个IP失败,如果它以一个点开始或结束。 例如,这些将失败:
- .1.1.1.1 - 1.1.1.1. - 1.1.1.1.1 - 1.11.1.1.1
试试这个正则表达式:
(?<!\.)(?:[0-9]+(?:\.[0-9]+){3})(?!\.)
Click for Demo
说明:
(?<!\.) -反向查找以确保IP模式前面没有 .
(?<!\.)
.
(?:[0-9]+(?:\.[0-9]+){3}) -和你的模式一样
(?:[0-9]+(?:\.[0-9]+){3})
(?!\.)
另外,请注意,如果需要,ip模式也可以改进。
更新
根据您的评论,这里是更新的regex(我刚刚添加了单词边界,以涵盖您提供的情况):
(?<!\.)\b\d+(?:\.\d+){3}\b(?!\.)