我读过很少的文章和帖子,但我找不到从文本中删除特定网址的解决方案。我尝试了至少3种不同的表达方式。很高兴知道我是以编程方式(C#)进行的。
(?<!"")((www\.|(http|https|ftp|news|file)+\:\/\/)[_.a-z0-9-]+\.[a-z0-9\/_:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])(?!"")
((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)
(?<!\w?="")(((http|https|ftp|news|file)+://)[_.a-z0-9-]+\.[a-z0-9\/_:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])
示例网址如下。请注意,并非所有网址都与此完全相同。这是最糟糕的一个。
http://api.ning.com/files/ THD uipNJAW29nIL5jzWbrYON5NhTKYVXmzollyMEHasDDvnq1454BrFkXFfmzj1gH7Ye3xw03C9ulNTICYAdueKg6vaIeu / PauloSkaf.png
有人可以指导我解决方案吗?
更新
正如hwnd提到的最佳模式是
https?\S+
答案 0 :(得分:0)
我不完全确定您的需求是什么,但如果您想从文本中删除该网址,则可以使用这样的正则表达式:
https?:.*(?=\s)
<强> Working demo 强>
检查替换部分
顺便说一句,如果你想删除任何协议,你可以使用这个:
\w+:\/\/.*?(?=\s)
<强> Working demo 强>
在评论中指出 hwnd ,您可以使用以下方法改进以上正则表达式:
\w+:\/\/\S*