0

我们应用程序中的一个模块检查用户为 URL 编写的状态更新,以便从 embed.ly 获得预览。在共享以下链接之前,一切似乎都运行良好:

http://sic.sapo.pt/proj_queridajulia/Scripts/VideoPlayer.aspx?videoId= {C1BB1496-A37B-44B7-825C-78A9A0A0B9AE}

我复制了我们的正则表达式(不是我写的)和链接到http://gskinner.com/RegExr/显然正则表达式只匹配等号。正则表达式是:

(^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))

有人可以帮助我并指出错误所在,或者推荐另一个,最好是防弹的 URL 匹配正则表达式吗?

4

1 回答 1

0

好的,我只是尝试了一下并让它工作。我在似乎是允许的字符组中添加了花括号。最终的正则表达式变成了这样:

(^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|w‌​ebcal):(([A-Za- z0-9$_.+!*(){},;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a- zA-Z0-9][a-zA‌​-Z0-9$ .+!(){},;/?:@&~=%-]))?([A-Za-z0-9$ +! *(){};/?:~-]))

我仍然不知道正则表达式的哪一部分负责什么。:/因此,如果有人想指出,我将不胜感激。

于 2012-09-03T17:53:40.467 回答