首页 文章

正则表达式中的“\ d”是指数字吗?

提问于
浏览
128

我发现在 123 中, \d 匹配 13 但不匹配 2 . 我想知道 \d 是否匹配满足什么样的要求的数字?我在谈论Python风格的正则表达式 .

Gedit中的正则表达式插件使用Python风格的正则表达式 . 我创建了一个文本文件,其内容为

123

只有 13 匹配正则表达式 \d ; 2 不是 .

通常对于其间没有其他字符的数字序列,只有奇数位数是匹配的,偶数位数不是 . 例如,在 12345 中,匹配为 135 .

5 回答

  • 7

    [0-9] is not always equivalent\d . 在python3中, [0-9] 仅匹配 0123456789 个字符,而 \d 匹配 [0-9] 和其他数字字符,例如东方阿拉伯数字 ٠١٢٣٤٥٦٧٨٩ .

  • 7

    \d 匹配大多数正则表达式语法样式中的任何单个数字,包括python . Regex Reference

  • 3

    在Python风格的正则表达式中, \d 匹配任何单个数字 . 如果您似乎这样做,请提供您正在使用的完整正则表达式,而不是仅仅描述一个特定符号 .

    >>> import re
    >>> re.match(r'\d', '3')
    <_sre.SRE_Match object at 0x02155B80>
    >>> re.match(r'\d', '2')
    <_sre.SRE_Match object at 0x02155BB8>
    >>> re.match(r'\d', '1')
    <_sre.SRE_Match object at 0x02155B80>
    
  • 9

    \\d{3} 匹配Java中任何三位数的序列 .

  • 413

    这只是一个猜测,但我认为你的编辑器实际匹配每一个数字 - 1 2 3 - 但只突出奇数匹配,以区别于整个 123 字符串匹配的情况 .

    大多数正则表达式控制台突出显示不同颜色的连续匹配,但由于插件设置,终端限制或其他原因,在您的情况下,只有其他组可能会突出显示 .

相关问题