我一直在使用以下正则表达式在纯文本文件中查找网址,以便我可以将它们转换为HTML链接。
const string pattern = @"((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)";
除了URL中有“#”之外,这似乎工作正常。所以对于这个URL
http://www.example.com/ckm/OKM.html#showarchetype_1013.1.868_7
网址标识在“#”
处停止正则表达式需要更改哪些想法才能识别URL?
答案 0 :(得分:1)
只需在最后的第二个字符类中添加#
。
((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w_-]*)?\??(?:[-\+=&;%@.\w_#]*)#?(?:[.\!\/\\w]*))?)
答案 1 :(得分:0)
((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w_#-]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)
^^
试试这个。看看demo.Added #
上面。