正则表达式获取链接文本

spa*_*zed 3 javascript regex hyperlink

我被难住了!我用谷歌搜索、阅读、阅读、阅读,我确信我做错了一些非常愚蠢的事情。这是来自 Greasemonkey 脚本,我一生都无法启动并正确执行该脚本。我正在尝试匹配这个:

<a href="/browse/post/SOMETHING/">**SOMETHING** (1111)</a>
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的:

var titleRegex = new RegExp("<a href=\"/browse/post/\d*/\">(.*) \(");
Run Code Online (Sandbox Code Playgroud)

我确定我错过了某种转义字符?但我就是无法弄清楚,这样 Firefox 就不会出错。

我使用http://regexpal.com/生成正则表达式- 在 Firefox 错误控制台中,我收到“未终止的括号”

Tim*_*ker 5

当从字符串而不是正则表达式文字构建正则表达式时,您需要使用双反斜杠。

然后,\d*仅匹配数字。我假设这SOMETHING只是一个占位符,但如果它包含除数字之外的任何内容,它就会失败。

另外,您应该使用(.*?)(惰性)而不是(.*)(贪婪),否则您可能会匹配太多。也许([^(]*)会更好。

不过,如果不了解更多有关您要匹配的实际文本的信息,就很难说。

总而言之:

var titleRegex = new RegExp("<a href=\"/browse/post/\\d*/\">([^(]*) \\(");
Run Code Online (Sandbox Code Playgroud)