问题标签 [gruber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2094 浏览

python - Gruber 在 Python 中的 URL 正则表达式

如何重写这种识别地址的新方法以在 Python 中工作?

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

0 投票
1 回答
1083 浏览

php - 在 PHP 中使用 Gruber 的正则表达式进行 URL 匹配

如何让本文中提到的正则表达式与 php 中的 preg_match 一起使用?

使用上面的代码,我得到以下错误:

0 投票
3 回答
1291 浏览

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

从 Daring Fireball 中获取了 Liberal URL Regex,将它与Alan Storm 的一些改进合并,并设法修复了一些错误,例如支持括号内的 IDN 字符。这就是我所拥有的:

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

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

被正确识别为www.sampleurl.com.

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

对于商品,我用正则表达式和一些测试数据设置了一个Rubular 永久链接(最后一个 URL 失败)。


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

看到GruberAlan都错过了这个非常简单的错字,我更加印象深刻:

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

0 投票
1 回答
7205 浏览

javascript - 尝试在 JavaScript 中使用 Gruber 的“改进的”URL 匹配正则表达式模式时,如何修复“无效组”错误?

我正在尝试将 John Gruber 的用于匹配 URL 的改进的自由、准确的正则表达式模式集成到我的一个 Javascript 中,但是 WebKit 的检查器(在 Mac 的 Google Chrome 5.0.375.125 中)给出了“无效组”正则表达式语法错误。

Gruber 的原始正则表达式如下:

我的带有正则表达式的 JavaScript 中的行如下(带有正斜杠反斜杠转义):

而谷歌浏览器(V8?)错误如下:

Safari错误如下:

他声称它应该在现代 JavaScript 正则表达式解释器中工作,我认为 WebKit 和 V8 可以。JavaScript 的正则表达式语法不支持(?:(该死的谷歌没有索引标点符号!)分组语法吗?我只是错过了逃避什么吗?

0 投票
1 回答
762 浏览

javascript - 为 Javascript 优化 Gruber URL 正则表达式

我一直在使用 John Gruber 的出色 URL 正则表达式来匹配非结构化文本消息中的 URL。它在大多数情况下都非常有效,但我发现了一种情况,即性能严重下降取决于括号内的内容。

原始帖子包含正则表达式的多行注释版本,可在此处找到:

http://daringfireball.net/2010/07/improved_regex_for_matching_urls

这是一个 JSFiddle,它围绕问题进行了一些性能计时:

http://jsfiddle.net/xMePg/4/

及其在 Chrome 上的输出:

有人能确定是什么原因导致某些现代浏览器的匹配时间增加吗?我想要么导致匹配失败,要么以某种方式优化正则表达式。