gpt4 book ai didi

php - 帮助破解 Gruber 的自由 URL 正则表达式

转载 作者:可可西里 更新时间:2023-10-31 22:49:47 26 4
gpt4 key购买 nike

我拿了Liberal URL Regex from Daring Fireball , 将其与 some of Alan Storm improvements 合并并用我的方式修复了一些错误,例如支持括号内的 IDN 字符。这是我的:

/(?:[\w-]+:\/\/?|www[.])[^\s()<>]+(?:(?:\([^\s()<>]*\)[^\s()<>]*)+|[^[:punct:]\s]|\/)/

但是我遇到了一个我无法解决的错误:

'www.dsd(sd)sdsd.com' // can also be the valid 'www.dsd.com/whatever(whatever)'

上述 URL 被识别为 www.dsd(sd)sdsd.com'(或 www.dsd.com/whatever(whatever)')而不是www.dsd(sd)sdsd.com(或 www.dsd.com/whatever(whatever))。这似乎只发生在 URL 有括号时,因为以下 URL:

'www.sampleurl.com'

被正确识别为 www.sampleurl.com

我认为 [^[:punct:]\s]|\/ 正则表达式的一部分在 URL 有括号时没有被执行,我已经已经尝试了一段时间,但我似乎找不到解决方案。谁能帮帮我?

对于商品,我设置了一个 Rubular permalink with the regex and some test data (最后一个 URL 失败)。


我认为 Gruber 的正则表达式有点仓促,例如它与 URL 不匹配:

http://en.wikipedia.org/wiki/Something_(Special)_For_You

看到这两个 Gruber 给我留下了更深刻的印象和 Alan错过了这个非常简单的错字:

\([\w\d]+\)

\(\w+\) 还不够吗? :S

最佳答案

好像Gruber has revised his regular expression :

\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.])(?:[^\s()<>]+|\([^\s()<>]+\))+(?:\([^\s()<>]+\)|[^`!()\[\]{};:'".,<>?«»“”‘’\s]))

Works just fine now .

关于php - 帮助破解 Gruber 的自由 URL 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com