如何检测文本中的链接?

时间:2010-09-22 10:10:15

标签: java pattern-matching

所有的问候 我有一个文本可能包含类似的链接:

“你好.....在http://www.google.com.eg上访问我们,有关详细信息,请联系我们  http://www.myweb.com/help

我希望通过以下链接找到并替换任何链接

谁知道怎么做?

我还有一个问题是,像stackoverflow这样的任何网站如何检测这个帖子中的链接并突出显示它们,以便任何人都可以点击它们并访问链接?

2 个答案:

答案 0 :(得分:4)

使用 java.util.regex ,您可以通过查找与正则表达式匹配的所有内容来获取网址:https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?

import java.util.regex.*;

Pattern pattern = Pattern.compile("https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?", Pattern.CASE_INSENSITIVE | Pattern.DOTALL | Pattern.MULTILINE);
Matcher myMatcher = pattern.matcher(myStringWithUrls);
while (myMatcher.find()) {
    ...
}

答案 1 :(得分:0)

我认为正则表达式太慢,无法在大型字符串中查找URL。您应该尝试更好的状态机,并且有一个名为Automaton

的好机器