我正在将我的 C# 程序转换为 JavaScript 以用于 Google Chrome 扩展程序。
这是 C# 正则表达式:
Did you mean: </span><a href=/search.[a-zA-Z0-9=&;_-]{1,}q=[a-zA-Z0-9+-]{1,}
如何在 JavaScript 中匹配相同的东西?相同的正则表达式不起作用。
编辑:
输入的字符串是:
>Did you mean: </span><a href=/search?hl=en&safe=off&&sa=X&ei=hD9PTYKpKcKtgQei4pUP&ved=0CBIQBSgA&q=Linkin+Park-In+The+End&spell=1class=spell>Linkin Park-In
我需要匹配:
Did you mean: </span><a href=/search?hl=en&safe=off&&sa=X&ei=hD9PTYKpKcKtgQei4pUP&ved=0CBIQBSgA&q=Linkin+Park-In+The+End
注意:引用已被过滤掉
请您参考如下方法:
如果它能正常工作,你能用 Javascript 试试这个吗?
var rx = /Did you mean: <\/span><a href=["']?\/search.[a-zA-Z0-9=&;_-]+q=[a-zA-Z0-9+-]+/;
我可能转义了太多字符,但我也更改了 {1,} ,它基本上等同于 + 并且我添加了href 之后可能出现的引号检查。单引号或双引号。
如果我在这个 stackoverflow 页面上的 Firebug 中执行这个:
var rx = /Did you mean: <\/span><a href=["']?\/search.[a-zA-Z0-9=&;_-]+q=([a-zA-Z0-9+-]+)/;
rx.exec($(document.body).text());
它确实找到了整个文本,因为我已经捕获了 q 变量,所以它还显示了 Linkin+Park...
