高手指点,正则表达式判断网址

以“http://”或“https://”开头,以空格或逗号(全角、半角均可)结尾 的匹配。

但是不能匹配只有http://或者https://的
情况是这样的,公司有个需求:以逗号或空格为分界点,之前的并且以http(s)://开头的匹配。如
http://www.123.com
,此时这个
http://www.123.com
匹配因为有逗号结尾了。
http://www.123.com
。 此时整个
http://www.123.com
。 匹配,因为没遇到空格或者逗号,所以整个匹配。

再如:你好啊
http://www.baidu.com
高手们解答,遇到了逗号,所以逗号之前的以http(s)开头的都匹配
最新回答
一身傲气怎能服输

2024-04-27 02:51:09

JAVA中是这样写的, 如果是别的语言, 正则表达式的写法是一致的

String str = "此时整个
http://www.123.com
。";
String pattern = "(\\w+)://([^/:]+)(:\\d*)?([^#\\s]*)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
String url = "";
if (m.find())
{
url = m.group().replaceAll(",$|.$|,$|。$", "");
System.out.println(url);
}

输出:
http://www.123.com


你是需要这个结果吧?
灬夏伤

2024-04-27 09:00:20

https?://.+(,|,| )?

按你的要求应该是这样,再试试
只想待在家

2024-04-27 10:22:33

https?://[^,, ]+
追答
什么叫“只管外面的”?是只获取网址左右两侧的内容吗?
追问
如何HTTP这样的也匹配啊
国产祖宗

2024-04-27 19:30:14

https?://(\w|\.)+[,,\s]