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

时间:2015-07-11 19:35:10

标签: regex

  1. 如果我想匹配点符号(.),我必须写这个正则表达式:

    /\./

  2. 需要使用转义字符来匹配符号本身。

    1. 如果我想匹配' d'我必须写下这个符号:

      /d/

    2. 与符号本身匹配所需的转义字符

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

      在我看来,这种方法并不十分一致。支持它的原因是什么?

      谢谢。

1 个答案:

答案 0 :(得分:5)

.字符是保留的正则表达式关键字。 d不是d。在匹配句点时,您需要包含转义字符,以明确告诉正则表达式您要将句点用作普通匹配字符。 \d本身并不是一个保留字,所以你不需要逃避它,但.是一个保留字。

我可以看到,对于那些来到正则表达式的人来说,它可能有点奇怪,但helper.py经常被使用,我无法想到我真正需要的时间为了匹配句点,让它成为一个没有反斜杠的角色更有意义。