正则表达式,用于查找URL,但不包括URL后的标点符号
Regular expression to find URLs but not include punctuation AFTER the URL
示例:"我的站点是http://www.abcd.com,而你的是http://www.def.ghi/jkl.是弗雷德的https://www.xyz.com?还是http://www.xxx.com?abc=def?(我以为他的网站http://www.mmm.com),但显然不是。"
这应该提取
http://www.abcd.comhttp://www.def.ghi/jklhttps://www.xyz.comhttp://www.xxx.com?abc=defhttp://www.mmm.com
注意:应该假设url后面的任何标点符号都不是url的一部分,例如后面的逗号http://www.abcd.com,不是url的一部分。这包括尾随的问号,我意识到这实际上可能是url的一部分。当然,如果问号后面跟着querystring数据,则应该将其视为url的一部分。请注意,url后面可能有多个标点符号,如(Is your urlhttp://abcd.com)?
URL(以及它们的尾随标点符号,如果有的话)后面总是跟一个空格、一个换行符/返回字符——或者它们将是被测试字符串的末尾。
前面将有一个空白字符,或者可能是一个大括号或圆括号,如"请访问我的网站(http://www.abcd.com)。"否则他们会在字符串的开头出现。
这个正则表达式应该适用于http、https和ftp。
这是一个Actionscript项目。我相信Actionscript使用与Javascript相同的正则表达式引擎。
谢谢!
看看这里:http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/
编辑:shanethhat和divillysusements也提到了这个链接:http://gskinner.com/RegExr/这是我以前从未见过的,它具有在线评估功能(换句话说,你可以在不启动编码IDE的情况下调整你的regex,这太棒了)。谢谢
首先,使用自己的regexp来解析URL是一个糟糕的想法。你必须想象一下,根据RFC,这是一个足够常见的问题,有人已经为它编写、调试和测试了一个库。在解析URL时,有很多边缘情况:国际域名、实际的(.museum)与不存在的(.jpg)URL、奇怪的标点符号(包括括号)、URL末尾的标点符号等。
我看了很多图书馆,它们都有缺点。请在此处查看JavaScript URL解析库的比较。
如果您想要一个正则表达式,Component中的表达式是非常全面的。
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 通过js在新选项卡中有条件地打开url
- CKFinder 3为所选文件返回错误的URL
- 如何获取不属于我项目的上一页的URL
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在URL中传递JS对象
- 将纯文本URL转换为可单击链接
- Javascript html每点击一次就会更改url
- 以角度管理动态URL
- Mathias URL shortener
- 如何有效地将游戏数据存储在URL查询字符串中
- 使用带括号的图像URL作为jQuery的背景
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 传递包含'%的参数'在URL中
- 正则表达式,用于查找URL,但不包括URL后的标点符号