【发布时间】:2016-12-15 15:57:37
【问题描述】:
我正在尝试从纯文本中解析链接,我遇到了这个非常有用的网站:
http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without
有一个使用该正则表达式来匹配网址的示例,但是我在语法上遇到了一些麻烦。
Java 中 this 的等价物是什么:
$(function() {
var urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g;
$('#target').html($('#source').html().replace(urlRegEx, "<a href='$1'>$1</a>"));
});
任何帮助或解决方案都将非常感激。
我知道 Java 中的 Pattern 和 Matcher 类,但我不知道 jquery 的 .html() 为实现解决方案做了什么。提前致谢。
【问题讨论】:
-
如果需要替换,为什么要使用 Pattern 和 Matcher?使用
String res = input_str.replaceAll(regex, "<a href='$1'>$1</a>");。正则表达式是相同的,只需删除初始和最后一个/和双其他反斜杠([...]中的那些反斜杠都可以删除,除了\w)。