java正则表达式未选择第一次出现的文本
我有一个正则表达式,它可以过滤文本中的所有IP地址。但是,有一个问题!它获取除前面的文本之外的所有不相关文本。例如,首先,使用此网站:
http://myregexp.com/signedJar.html
制作正则表达式:
(?<=[0-9]{1,4}+\.[0-9]{1,4}+\.[0-9]{1,4}+\.[0-9]{1,4}+)([[^\n][\n]](?![0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+))*[[^\n]\n]
并输入:
此文本不会被选择1.1.1.1,但是,此t 4.55.62.1文本的其余2.2.22.345将被选择32.4.3.1即可
您应该看到如下内容:
所以我的问题是,什么是最好的方式,使“这个文本将不会被选中”成为选中?(或第一个IP之前的任何文本)
# 1 楼答案
我刚有个主意!一个非常简单的解决方案是在字符串的开头附加1.1.1.1,然后忽略我的正则表达式拆分返回的第一个IP(由godspeedlee建议的拆分,如果您想添加答案并为此要求投票,我将接受)
# 2 楼答案
这: ?<;=
表示未捕获组,请尝试删除此组并查看所选内容
# 3 楼答案
我怀疑你让这项工作变得比实际需要困难得多。如果您只想获取所有IP地址,为什么不直接匹配它们呢?例如: