【问题标题】:Converting C# regex to javascript将 C# 正则表达式转换为 javascript
【发布时间】:2023-04-10 09:00:03
【问题描述】:

我正在将我的 C# 程序转换为用于 Google Chrome 扩展的 JavaScript。

这是 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&amp;safe=off&amp;&amp;sa=X&amp;ei=hD9PTYKpKcKtgQei4pUP&amp;ved=0CBIQBSgA&amp;q=Linkin+Park-In+The+End&amp;spell=1class=spell>Linkin Park-In

我需要匹配:

Did you mean: </span><a href=/search?hl=en&amp;safe=off&amp;&amp;sa=X&amp;ei=hD9PTYKpKcKtgQei4pUP&amp;ved=0CBIQBSgA&amp;q=Linkin+Park-In+The+End 

注意:报价已被过滤掉

【问题讨论】:

  • 实际正则表达式对象的哪一部分?是/.[a-zA-Z0-9=&amp;;_-]{1,}q=[a-zA-Z0-9+-]{1,}/ 吗?
  • 是的,我想知道为什么谷歌在我创建正则表达式时添加了这些。
  • 那么正则表达式是什么?只是 URL 匹配还是整个字符串?你为什么不修改你的问题,以便能够提供正确的答案......谷歌与它有什么关系?
  • 你可以提供一些应该被正则表达式匹配的字符串。
  • 好的,我刚刚添加了一个编辑。另外,我正在通过 google 运行此搜索。

标签: c# javascript regex google-chrome-extension


【解决方案1】:

如果它可以正常工作,你能在 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...

【讨论】:

  • @Matt Ball:我想我不明白你的意思?最后一个斜杠是结束正则表达式的正斜杠。变量声明语句用分号结束。
  • 没有正确匹配,但它引导我找到正确的答案。谢谢。
猜你喜欢
  • 2011-10-02
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 2019-05-11
相关资源
最近更新 更多