Javascript 如何使用正则表达式匹配没有顶级域的链接?
我使用next regex(linkify regex的更新版本)来匹配链接和不匹配电子邮件Javascript 如何使用正则表达式匹配没有顶级域的链接?,javascript,regex,Javascript,Regex,我使用next regex(linkify regex的更新版本)来匹配链接和不匹配电子邮件 (\s*|[^a-zA-Z0-9.\+_\/"\>\-]|^)(?:([a-zA-Z0-9\+_\-]+(?:\.[a-zA-Z0-9\+_\-]+)*@)?(http:\/\/|https:\/\/|ftp:\/\/|scp:\/\/){1}?((?:(?:[a-zA-Z0-9][a-zA-Z0-9_%\-_+]*\.)+))(?:[a-zA-Z]{2,})((?::\d{1,5}))?((?:
(\s*|[^a-zA-Z0-9.\+_\/"\>\-]|^)(?:([a-zA-Z0-9\+_\-]+(?:\.[a-zA-Z0-9\+_\-]+)*@)?(http:\/\/|https:\/\/|ftp:\/\/|scp:\/\/){1}?((?:(?:[a-zA-Z0-9][a-zA-Z0-9_%\-_+]*\.)+))(?:[a-zA-Z]{2,})((?::\d{1,5}))?((?:[\/|\?](?:[\-a-zA-Z0-9_%#*&+=~!?,;:.\/]*)*)[\-\/a-zA-Z0-9_%#*&+=~]|\/?)?)([^a-zA-Z0-9\+_\/"\<\-]|$)
(2)以下几种::((a-zA-zA-zA-Z0-9-9-9-9-9-9-10-10-10-10-9-9-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-5-10)以下以下以下几种:::(以下以下)以下以下几种:::(,(,(以下以下::::::(以下以下以下以下以下:::((:(:(:(:(:(:(:(:(:(:(:(a)以下::::(:(:(:(:(:(:(:(:(:(:(:(:(:(:(:(:(:(a)(a-a-a-a-a-a-a-a-a-a-a-a-zA-a-zA-zA-zA-a-zA-zA-zA-a-zA-zA-zA-zA-zA-zA-zA-Z0-Z0((?:[\/\\?])(?:[\-a-zA-Z0-9%.+=!,;:.\/]*)*)[\-\/a-zA-Z0-9%.&+=[\%.+=]这应该是“修改最少的”用于匹配没有顶级的域的表达式版本:
(\s*|[^a-zA-Z0-9.\+_\/"\>\-]|^)(?:([a-zA-Z0-9\+_\-]+(?:\.[a-zA-Z0-9\+_\-]+)*@)?(http:\/\/|https:\/\/|ftp:\/\/|scp:\/\/){1}?((?:[a-zA-Z0-9][a-zA-Z0-9_%\-_+.]*)(?:\.[a-zA-Z]{2,})?)((?::\d{1,5}))?((?:[\/|\?](?:[\-a-zA-Z0-9_%#*&+=~!?,;:.\/]*)*)[\-\/a-zA-Z0-9_%#*&+=~]|\/?)?)([^a-zA-Z0-9\+_\/"\<\-]|$)
为此:
(
(?:
[a-zA-Z0-9]
[a-zA-Z0-9_%\-_+.]* (?# the . is in the character class here for subdomains)
)
(?:
\.
[a-zA-Z]{2,}
)? (?# this TLD is optional)
)
您期望的输出是什么?我希望正则表达式与我在帖子中添加的URL匹配。非常感谢您的解释和演示!这很有帮助!
(
(?:
[a-zA-Z0-9]
[a-zA-Z0-9_%\-_+.]* (?# the . is in the character class here for subdomains)
)
(?:
\.
[a-zA-Z]{2,}
)? (?# this TLD is optional)
)