Regex 99%正则表达式用于匹配URL(但不是锚定标记内的URL)

Regex 99%正则表达式用于匹配URL(但不是锚定标记内的URL),regex,url,tags,anchor,Regex,Url,Tags,Anchor,有人能帮我处理这个正则表达式吗?99%的路程都在那里。只是一对奇怪的失败测试 对于:“”和“” 正则表达式与“”匹配 我推断这场比赛应该失败,因为对结束标记的展望 (?<!(?:>\s*)|(?:href="")) (?# Anti-Anchor Tag) (?:(?:https?|ftp)://) (?# Protocol) (?# Username/Password intentionally left out) (?: (?!10(?:\.\d{1,3}){3}) (?

有人能帮我处理这个正则表达式吗?99%的路程都在那里。只是一对奇怪的失败测试

对于:“”和“” 正则表达式与“”匹配 我推断这场比赛应该失败,因为对结束标记的展望

(?<!(?:>\s*)|(?:href="")) (?# Anti-Anchor Tag)
(?:(?:https?|ftp)://) (?# Protocol)
(?# Username/Password intentionally left out)
(?:
    (?!10(?:\.\d{1,3}){3}) (?# Exclude 10.X.X.X)
    (?!127(?:\.\d{1,3}){3}) (?# Exclude 127.X.X.X)
    (?!169\.254(?:\.\d{1,3}){2}) (?# Exclude 169.254.X.X)
    (?!192\.168(?:\.\d{1,3}){2}) (?# Exclude 192.168.X.X)
    (?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2}) (?# Exclude 172.X.X.X)
    (?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]) (?# IP address)
)|(?:
    (?:[\w\d\u00a1-\uffff]+-?)*[\w\d\u00a1-\uffff]+) (?# First part of host)
    (?:\.(?:[\w\d\u00a1-\uffff]+-?)*[\w\d\u00a1-\uffff]+)* (?# Middle parts of host)
    \.[\w\d\u00a1-\uffff]+ (?# Last part of host)
)
(?::\d{2,5})? (?# Port number)
(?:/[^\s\?#]*)? (?# Folders & Files)
(?:\?[^\s#]*)? (?# Query String)
(?:\#\S*)? (?# Fragment)
(?!\s*</a>) (?# Anti-Closing Anchor Tag)
(?\s*)|(?:href=“”)(?#防锚标签)
(?:(?:https?| ftp):/)(?#协议)
(?#故意省略用户名/密码)
(?:
(?!10(?:\.\d{1,3}){3})(?#排除10.X.X.X)
(?!127(?:\.\d{1,3}){3})(?#排除127.X.X.X)
(?!169\.254(?:\.\d{1,3}){2})(?#排除169.254.X.X)
(?!192\.168(?:\.\d{1,3}){2})(?#排除192.168.X.X)
(?!172\.(?:1[6-9]| 2\d|3[0-1])(?:\.\d{1,3}){2})(?#排除172.X.X.X)
(?:[1-9]\d?| 1\d | 2[01]\d | 22[0-3])(?:\。(?:[1,2}2[0-4]\d | 25[0-5]){2(?:。(?:[1-9]\d | 1\d | 2[0-4]\d | 25[0-4])(?:[0-4])IP地址)
)|(?:
(?:[\w\d\u00a1-\uffff]+-?)*[\w\d\u00a1-\uffff]+)(?#主机的第一部分)
(?:\。(?:[\w\d\u00a1-\uffff]+-?)*[\w\d\u00a1-\uffff]+)*(?#主机的中间部分)
\.[\w\d\u00a1-\uffff]+(?#主机的最后一部分)
)
(?::\d{2,5})?(?#端口号)
(?:/[^\s\?#]*)?(?#文件夹和文件)
(?:\?[^\s\\]*)?(?#查询字符串)
(?:\\\S*)?(?#片段)
(?!\s*)(?#防闭锚标签)

顺便说一句,这是@diegoperini的一个修改版本,可以在

找到,如果真的需要使用正则表达式,我会三思而后行……你能添加你的正则表达式吗?看起来像.NET/C#