【发布时间】:2011-04-06 13:54:12
【问题描述】:
在 Java 中,您可能会尝试使用 Pattern.compile("stackoverflow.com") 创建一个匹配 URL stackoverflow.com 的正则表达式。但这是错误的,因为. 在正则表达式中具有特殊含义。解决这个问题的最简单方法是写Pattern.compile(Pattern.quote("stackoverflow.com")),结果为:Pattern.compile("\\Qstackoverflow.com\\E")"quotes" the entire string。
我想在 JavaScript 中做同样的事情,但是 JavaScript 的正则表达式没有为 \Q 和 \E 赋予任何含义,而且看起来没有 JavaScript 等价物,所以我不确定如何去做。我的第一个想法(请参阅下面的答案)是在 JavaScript 正则表达式中具有特殊含义的任何字符之前放置一个反斜杠,但这似乎很容易出错,我怀疑有人可能知道更好的方法。
这是针对 Firefox 扩展的,因此可以使用 Mozilla 特定的解决方案。
【问题讨论】:
-
对于以后遇到这个并且好奇的人,我最终以不同的方式解决了它。我想要一个匹配
"的正则表达式,后跟一个特定的字符串,然后是"。我最终只是搜索/"[^"]+"/之类的东西(引号,一堆非引号字符,然后是另一个引号),然后遍历所有匹配项以找到与我想要的特定字符串匹配的匹配项。
标签: java javascript regex string firefox-addon