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

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

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

 123 

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

通常对于一个没有其他字符的数字序列,只有奇数的数字是匹配的,而偶数的数字则不是。 例如在12345 ,比赛是35

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

在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> 
 \d 

匹配大多数正则表达式语法样式中的任何单个数字,包括python。 正则表达式参考

\\d{3}匹配Java中三个数字的任何序列。

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

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