用正则表达式提取网址中的IP怎样取?

比如:http://10.1.1.1:8080/abcde/cdf.…… 取10.1.1.1:8080怎样取?
2025-12-16 19:03:32
推荐回答(3个)
回答1:

\d+\.\d+\.\d+\.\d*\:\d+


import java.util.regex.*;


// 表达式对象

Pattern p = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d*\\:\\d+");


// 创建 Matcher 对象

Matcher m = p.matcher("");


// 是否找到匹配

boolean found = m.find();


if( found )

{

    String foundstring = m.group();

    int    beginPos    = m.start();

    int    endPos      = m.end();

}


回答2:

用正则表达式提取网址的方式如下:

  1. 用ifconfig来提取

    ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F: '{print $2}'192.168.10.1

  2. 用ip addr来提取。

    ip addr | grep -Po '[^ ]+(?=/\d)'


回答3:

没有对IP地址的有效性做检查:







    输入: