【问题标题】:How to escape asterisk in regexp?如何在正则表达式中转义星号?
【发布时间】:2013-02-18 18:37:21
【问题描述】:

我想使用模式*1*。我试过\*1\*,但它不起作用。问题出在哪里?

【问题讨论】:

  • @Mike 不知道您是否会看到这个,但感谢您切换斜线。它在我编辑或在审核队列中时进行了忍者编辑。
  • @jdwire 是的,我看到了。其他编辑看起来不错,所以我只恢复了那一部分。
  • @ohTHATaaronbrown:标签

标签: javascript regex escaping


【解决方案1】:

你必须用反斜杠转义它:

/\*1\*/

否则,RegExp 中未转义的 * 将意味着:匹配 0 个或多个前面的字符组。

更新:

如果您使用RegExp 构造函数,请这样做:

new RegExp("\\*1\\*")

您必须对反斜杠进行双重转义,因为它们需要在字符串本身中进行转义。

【讨论】:

  • 我已经编辑了我的问题,但是是的,我使用了反斜杠,但它不起作用
  • 正斜杠标记正则表达式的开始和结束。您必须以正斜杠开头并以一个结尾,并在中间用反斜杠转义星号。就像我给出的例子一样。
  • 不,但我使用 RegExp 构造函数,所以我不需要使用正斜杠
  • @user2080105 我更新了我的问题。如果您通过字符串构造 RegExp,则必须进行双重转义。如果您使用其他工具,请在您的问题中记录。
  • @BeatRichartz 你的意思是你更新了你的答案?
【解决方案2】:

需要使用反斜杠\作为正则表达式中的转义字符。

【讨论】:

  • 我已经编辑了我的问题,但是是的,我使用了反斜杠,但它不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 2010-10-27
  • 2021-06-04
相关资源
最近更新 更多