我正在解析IP,我不关心任何事情,而是IP。这就是我所拥有的,但我不关心'10'之后的内容,只想知道字符串是否与IP匹配:
[0-9]{1,3}\\.[0-9]{1,3}\\.(16|249)\\.10
我可以添加什么来让它忽略其他一切?这个IP每次都会在字符串的最开头。
答案 0 :(得分:1)
如果您的字符串以特定的 IP模式开头,并且您使用的是String#matches()
,则只需在10
之后附加字边界,然后在其后使用.*
:
"(?s)\\d{1,3}\\.\\d{1,3}\\.(?:16|249)\\.10\\b.*"
添加(?s)
以确保您匹配可以包含换行符的整个字符串。
您可以使用\b
((?!\d)
)来禁止以"(?!\\d)"
而不是100
结尾的匹配IP,而不是10
。
注意第一部分和第二部分(\\d{1,3}
)可以通过将其替换为(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
来增强,而正则表达式看起来像"(?s)(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:16|249)\\.10\\b.*"
。