Javascript 如何修改此正则表达式以匹配URL';s包含@个字符
我使用下面的正则表达式使用javascript查找文本字符串中的链接Javascript 如何修改此正则表达式以匹配URL';s包含@个字符,javascript,regex,Javascript,Regex,我使用下面的正则表达式使用javascript查找文本字符串中的链接 /(([a-z]+:\/\/)?(([a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel|local|internal))(:[0-9]{1,5})?(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=
/(([a-z]+:\/\/)?(([a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel|local|internal))(:[0-9]{1,5})?(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-zA-Z0-9!$&'()*+.=-_~:@/?]*)?)(\s+|$)/gi
它对我很有帮助,而且看起来相当健壮。然而,我最近注意到(也许是正确的)它不匹配任何包含@
字符的URL
虽然这些并不常见,但Flickr使用它们,我希望支持匹配这些链接
我希望匹配的Flickr url示例:
https://www.flickr.com/photos/47574723@N03/13849559654/in/explore-2014-04-14
所以问题是,我如何修改上面的正则表达式,使其正确匹配上面的url
提前感谢编辑它以添加一个
@
(([a-z]+:\/\/)?(([a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel|local|internal))(:[0-9]{1,5})?(\/[a-z0-9_@\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-zA-Z0-9!$&'()*+.=-_~:@\/?]*)?)(\s+|$)
谢谢它工作得很好!我对正则表达式的理解充其量只是初步的,在这样一个漫长而复杂的过程中,我只是迷失了方向。再次感谢,我会尽快将其标记为已回答:)