为什么正则表达式中需要四个反斜杠?

3

"^\\\\d{1,2}$"

我有上述正则表达式。我知道字符串解析器会删除两个反斜杠,留下 \\d。为元字符取一个,多余的 \ 有什么作用?我以前没有正则表达式的经验。或者这个字符串模式本身就是 [反斜杠][最多两位整数]。我有什么遗漏吗?

最初的回答:

这个正则表达式匹配一个以一个或两个数字开头和结尾的字符串。双反斜杠 \\\\ 是用来转义一个反斜杠,因为反斜杠在正则表达式中也是一个特殊字符。


@Tiw JavaScript - Reshma Suresh
2个回答

1

反斜杠可以转义其他反斜杠,以及特殊字符。

你所拥有的是:

  • \d 是你的正则表达式引擎中的“数字”。
  • \\d 是反斜杠转义反斜杠 + d,在你的字符串引用机制中等同于 \d。
  • \\\\d 是反斜杠转义反斜杠两次,加上 d,如果你在使用 shell 或者必须通过 systemrsh 之类的方式传递字符串,则可能需要转义命令行。

1

需要转义\,这样您的字符串文字才能将其表示为数据,然后再将其转换为正则表达式。

首先,^\\表示以\开头的模式,\\d{1,2}表示数字(\d)应出现1到2次。这就是为什么有四个反斜杠的原因。

匹配情况:

\12
\1
.......

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接