Regex 为什么正则表达式中的转义字符不匹配?

Regex 为什么正则表达式中的转义字符不匹配?,regex,Regex,如果我想匹配点符号(),我必须编写以下正则表达式: /\./ 需要转义字符来匹配符号本身 如果我想匹配“d”符号,我必须写下: /d/ 转义字符不是匹配符号本身所需的 如果我想匹配任何字符(/./)或任何数字字符(/\d/),则反之亦然 在我看来,这种方法并不十分一致。背后的理由是什么 谢谢。字符是保留的正则表达式关键字。d不是。匹配句点时需要包含转义字符,以明确地告诉正则表达式要将句点用作正常匹配字符d本身不是保留字,因此不需要转义,但\d是保留字 我知道,对于来regex的人来说,这可能有点

如果我想匹配点符号(
),我必须编写以下正则表达式:

/\./

需要转义字符来匹配符号本身

  • 如果我想匹配“d”符号,我必须写下:

    /d/

  • 转义字符不是匹配符号本身所需的

    如果我想匹配任何字符(
    /./
    )或任何数字字符(
    /\d/
    ),则反之亦然

    在我看来,这种方法并不十分一致。背后的理由是什么


    谢谢。

    字符是保留的正则表达式关键字。
    d
    不是。匹配句点时需要包含转义字符,以明确地告诉正则表达式要将句点用作正常匹配字符
    d
    本身不是保留字,因此不需要转义,但
    \d
    是保留字


    我知道,对于来regex的人来说,这可能有点奇怪,但是
    经常被使用,我想不出有什么时候我真的需要匹配句点,只有一个字符没有反斜杠才更有意义。

    实际上,要匹配一个点,你需要
    /\./
    ,而不是
    /\./
    .Tim,谢谢你的评论。你完全正确,我添加了一个额外的斜杠字符,因为Stackoverflow预览根本没有显示斜杠字符。我现在将编辑原始帖子。