我需要正则表达式来查找Java中的以下字符串:
http://69.39.233.135:8032
http://83.133.127.104
http://119.207.75.238:11120
答案 0 :(得分:4)
此模式将获取所需的结果:
http://\d{1,3}(?:\.\d{1,3}){3}(?::\d{1,5})?
使用可选端口匹配http://之后的IP。
请注意,这是对IPv4的简化验证,只会匹配它们是正确的格式而不是有效的格式。并记住添加一个额外的反斜杠来逃避java中的每个反斜杠。
这是java中的一个例子:
String text = "http://69.39.233.135:8032 http://83.133.127.104 http://119.207.75.238:11120";
String pattern = "(http://\\d{1,3}(?:\\.\\d{1,3}){3}(?::\\d{1,5})?)";
Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
while(matcher.find()) {
System.out.println(matcher.group());
}
输出:
http://69.39.233.135:8032
http://83.133.127.104
http://119.207.75.238:11120
答案 1 :(得分:0)
我会在不考虑语言的情况下回答,因为它显示了制作正则表达式时的思考方式
http://
如果你没有考虑到数字必须小于255,那么某些组合是被禁止的,你最终会
^http:\/\/(\d+\.){3}(\d+)(:\d+)?$
答案 2 :(得分:0)
这些是IPv4地址;较新的IPv6也会传播。此外,您可以改为编写http://234144234:8080。第二行是保留端口号可选。
"http\\://\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\:\\d+"
"http\\://\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(\\:\\d+)?"