Java正则表达式仅匹配url';这是万维网,不是万维网http://www
基本上,如果一个文本类似于Java正则表达式仅匹配url';这是万维网,不是万维网http://www,java,regex,Java,Regex,基本上,如果一个文本类似于“lalala www.test.com lalahttp://test66.com“我需要一个regexp使之成为”拉拉http://www.test.com 拉拉http://test66.com" 谢谢 String plain = "test lalala www.test.com lalaal jaja http://www.test.com"; String str = "(?:(?:w{3}\.)(?:[a-zA-Z0-9/;\?&
“lalala www.test.com lalahttp://test66.com“
我需要一个regexp使之成为”拉拉http://www.test.com 拉拉http://test66.com"
谢谢
String plain = "test lalala www.test.com lalaal jaja http://www.test.com";
String str = "(?:(?:w{3}\.)(?:[a-zA-Z0-9/;\?&=:\-_\$\+!\*'\(\|\\~\[\]#%\.])+[\.com|\.edu|\.gov|\.int|\.mil|\.net|\.org|\.biz|\.info|\.name|\.pro|\.aero|\.coop|\.museum|\.cat|\.jobs|\.travel|\.arpa|\.mobi|\.ac|\.ad|\.ae|\.af|\.ag|\.ai|\.al|\.am|\.an|\.ao|\.aq|\.ar|\.as|\.at|\.au|\.aw|\.az|\.ax|\.ba|\.bb|\.bd|\.be|\.bf|\.bg|\.bh|\.bi|\.bj|\.bm|\.bn|\.bo|\.br|\.bs|\.bt|\.bv|\.bw|\.by|\.bz|\.ca|\.cc|\.cd|\.cf|\.cg|\.ch|\.ci|\.ck|\.cl|\.cm|\.cn|\.co|\.cr|\.cs|\.cu|\.cv|\.cx|\.cy|\.cz|\.de|\.dj|\.dk|\.dm|\.do|\.dz|\.ec|\.ee|\.eg|\.eh|\.er|\.es|\.et|\.eu|\.fi|\.fj|\.fk|\.fm|\.fo|\.fr|\.ga|\.gb|\.gd|\.ge|\.gf|\.gg|\.gh|\.gi|\.gl|\.gm|\.gn|\.gp|\.gq|\.gr|\.gs|\.gt|\.gu|\.gw|\.gy|\.hk|\.hm|\.hn|\.hr|\.ht|\.hu|\.id|\.ie|\.il|\.im|\.in|\.io|\.iq|\.ir|\.is|\.it|\.je|\.jm|\.jo|\.jp|\.ke|\.kg|\.kh|\.ki|\.km|\.kn|\.kp|\.kr|\.kw|\.ky|\.kz|\.la|\.lb|\.lc|\.li|\.lk|\.lr|\.ls|\.lt|\.lu|\.lv|\.ly|\.ma|\.mc|\.md|\.mg|\.mh|\.mk|\.ml|\.mm|\.mn|\.mo|\.mp|\.mq|\.mr|\.ms|\.mt|\.mu|\.mv|\.mw|\.mx|\.my|\.mz|\.na|\.nc|\.ne|\.nf|\.ng|\.ni|\.nl|\.no|\.np|\.nr|\.nu|\.nz|\.om|\.pa|\.pe|\.pf|\.pg|\.ph|\.pk|\.pl|\.pm|\.pn|\.pr|\.ps|\.pt|\.pw|\.py|\.qa|\.re|\.ro|\.ru|\.rw|\.sa|\.sb|\.sc|\.sd|\.se|\.sg|\.sh|\..si|\.sj|\.sk|\.sl|\.sm|\.sn|\.so|\.sr|\.st|\.sv|\.sy|\.sz|\.tc|\.td|\.tf|\.tg|\.th|\.tj|\.tk|\.tl|\.tm|\.tn|\.to|\.tp|\.tr|\.tt|\.tv|\.tw|\.tz|\.ua|\.ug|\.uk|\.um|\.us|\.uy|\.uz|\.va|\.vc|\.ve|\.vg|\.vi|\.vn|\.vu|\.wf|\.ws|\.xxx|\.ye|\.yt|\.yu|\.za|\.zm|\.zw](?:[a-zA-Z0-9/;\?&=:\-_\$\+!\*'\(\|\\~\[\]#%\.])*)";
Pattern patt = Pattern.compile(str);
Matcher matcher = patt.matcher(plain);
plain = matcher.replaceAll("http://$1");
这是我尝试过的,但我没能正确地逃脱绳子。此外,正则表达式本身比我需要的多一点。试试这个
String s = "lalala http://www.test.com lala http://test66.com";
Pattern pat = Pattern.compile("\\b(((ht|f)tp(s?)\\:\\/\\/|~\\/|\\/)|www.)" +
"(\\w+:\\w+@)?(([-\\w]+\\.)+(com|org|net|gov" +
"|mil|biz|info|mobi|name|aero|jobs|museum" +
"|travel|[a-z]{2}))(:[\\d]{1,5})?" +
"(((\\/([-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|\\/)+|\\?|#)?" +
"((\\?([-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" +
"([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)" +
"(&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" +
"([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*" +
"(#([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?\\b");
Matcher mat = pat.matcher(s);
while(mat.find()){
mat.replaceAll("http:");
}
System.out.println(s);
如果在www之前没有“
”字符,您可以在组中使用管道,例如”(|,| | | |>)www.“
向我们展示您的尝试,然后我们可以尝试帮助您。有很多人在这里多次问过同样的问题。.replaceAll((URL\u REGEX\u不带\u HTTP\u前缀\u YOULL\u FIND\u ON\u WEB)”,“HTTP://$1”)代码>好的编辑。如果发布了一个而不是代码段,并且提供了关于它如何失败的更多详细信息,可能会更好。只是因为字符串str不是java的有效字符串,我无法正确地转义它,所以代码无法编译。起初我没有发布这篇文章,因为我不确定正则表达式是否有效,即使我成功地逃脱了它。谢谢你的尝试,但我需要一个正则表达式,它可以将http://添加到所有只有www的链接中(从而将它们变成)。我遇到的问题不是将http://添加到已有的链接中(并制作类似的东西)。如果我不够清楚,很抱歉。忘记标记链接。。“感谢您的尝试,但我需要一个正则表达式,它可以将http://添加到所有只有www的链接中(从而将它们转换为)。我遇到的问题是没有将http://添加到已经有www的链接中(并生成类似的内容)。如果我不够清楚,很抱歉”
replaceAll(" www."," http://www"); would work,