首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将感叹号作为regex中URL的一部分

如何将感叹号作为regex中URL的一部分
EN

Stack Overflow用户
提问于 2014-09-02 08:48:51
回答 2查看 436关注 0票数 0

如何将感叹号作为regex中URL的一部分

示例:收集器url是: bla1 bla2 http://www.peckale.com/#!contact/c11m6 bla3我需要找到URL:http://www.peckale.com/#!contact/c11m6

用regex。

我用的是经验:

代码语言:javascript
复制
((www\.|(http|https|ftp|news|file)+\:\/\/)?[&#95;.a-zA-Z0-9-]+\.[a-zA-Z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)]*)

但结果是:在#之后剪切url

向沙哈尔问好

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-02 09:50:22

如果要匹配全文中的URL,请使用以下命令:

代码语言:javascript
复制
(?:www\.|(?:https?|ftp|news|file):\/\/)[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]

请注意,最后一个字符类确保如果URL是某个文本的一部分,则标点符号(如逗号或URL后的句号)不会被解释为URL的一部分。这个符号像感叹号(!)只有当它们位于URL的中间,但如果它们位于URL的末尾,则不匹配

看演示..。

http://regex101.com/r/uG0mD2/3

票数 0
EN

Stack Overflow用户

发布于 2014-09-02 10:00:08

只需从最后一个被否定的字符类!中删除[^.|\'|\# |!|\(|?|,| |>|<|;|\)]即可。

代码语言:javascript
复制
((www\.|(http|https|ftp|news|file)+\:\/\/)?[&#95;.a-zA-Z0-9-]+\.[a-zA-Z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\#|\(|?|,| |>|<|;|\)]*)

演示

我的建议是,您不需要在字符类中包含|符号。

所以这个[^.|\'|\#|\(|?|,| |>|<|;|\)]被证明是[^.'#\(?, ><;\)]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25619380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档