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

2024-04-18 13:07:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现在123\d匹配13,而不是2。我想知道\d是否匹配满足哪种要求的数字?我说的是Python风格的regex。

Gedit中的正则表达式插件使用Python样式的regex。我创建了一个文本文件,其内容是

123

只有13与正则表达式\d匹配;而2不匹配。

通常对于一个没有其他字符的数字序列,只有奇数顺序的数字是匹配的,而偶数顺序的数字不是匹配的。例如在12345中,匹配项是135


Tags: 插件内容顺序风格序列样式数字字符
3条回答

[0-9]并不总是等同于\d。在python3中,[0-9]只匹配0123456789字符,而\d匹配[0-9]和其他数字字符,例如东部阿拉伯数字٠١٢٣٤٥٦٧٨٩

在Python样式的regex中,\d匹配任何单个数字。如果您看到的东西似乎没有做到这一点,请提供您正在使用的完整regex,而不是仅仅描述一个特定的符号。

>>> 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>

\d匹配大多数regex语法样式(包括python)中的任何单个数字。 Regex Reference

相关问题 更多 >