pattern_for_links = /
(((((http|ftp|https):\/{2}|([0-9a-z_-]+\.)+)|)(([0-9a-z_-]+\.)+(com)(:[0-9]+)?
((\/([~0-9a-zA-Z\#\+\%@@\.\/_-]+))?(\?[0-9a-zA-Z\+\%@@\/&\[\];=_-]+)?)?))\b)
/gmi;
我得到了这个匹配( JS ),这很好并且所有匹配都正确:
http://www.yahoo.com
yahoo.com/wordss
www.yahoo.com
但是当我在最后添加/
时,/
不会包含在内( /
不匹配)。
http://www.yahoo.com/
yahoo.com/wordss/
www.yahoo.com/
如何使用/
?
pattern_for_links
修改
解决方案:我添加了\b\/?
而非\b
,现在/
也匹配并包含在内。
答案 0 :(得分:0)
试试这个:
/(https?:\/\/(www\.)?)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/=]*)/gmi
取自Regex for URL: SO,稍加修改即可抓住http/https
前缀URLs
和URLs
而不带它们。
此外,要快速轻松地制作(和学习)RegEx,请参阅RegExr.com