我需要帮助构建一个正则表达式,该表达式可以与自由文本中的URL正确匹配.
[a-zA-Z]{2,6}就足够了)
以下是我可以找到的关于子域的信息:
“子域”表示相对依赖,而不是绝对依赖:例如,wikipedia.org包括组织域的子域,en.wikipedia.org包括域wikipedia.org的子域。理论上,这种细分可以降到127个层次,每个DNS标签可以包含多达63个字符,只要整个域名不超过255个字符的总长度。
关于域名本身,我找不到任何可靠的来源,但我认为非IDN 的正则表达式(我不知道如何编写与IDN兼容的版本)如下所示:
[0-9a-zA-Z][0-9a-zA-Z\-]{2,62},有人能帮我完成这个正则表达式吗?
发布于 2009-12-29 15:06:20
John,著名的大胆火球,有最近的一篇文章,详细说明了他寻找一个良好的URL识别正则字符串。他想出的是:
\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))
这显然也适用于包含Unicode的URL。你需要对它做一些轻微的修改,才能得到你想要的其他东西--方案,用户名,密码等等。艾伦·斯托姆写了一篇文章解释格鲁伯的正则表达式,这是我绝对需要的(regex是如此的写了一篇文章解释格鲁伯的正则表达式
发布于 2009-12-29 14:46:27
如果您需要该协议,并且不太担心假阳性,那么到目前为止,最简单的方法是匹配://周围的所有非空白字符。
发布于 2009-12-29 14:47:50
这会让你大老远跑到那里。如果您需要它更精细,请提供测试数据。
(ftp|https?)://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?https://stackoverflow.com/questions/1974941
复制相似问题