正则表达式中的“\ d”是指数字吗?
我发现123 , \d匹配1和3但不是2 。 我想知道\d是否符合什么样的要求的数字? 我正在谈论Python风格的正则表达式。
Gedit中的正则表达式插件使用Python风格的正则表达式。 我创建了一个文本文件,其内容是
123
只有1和3匹配的正则表达式\d ; 2不是。
通常对于一个没有其他字符的数字序列,只有奇数的数字是匹配的,而偶数的数字则不是。 例如在12345 ,比赛是3和5 。
[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字符串匹配的情况。
大多数正则表达式控制台会突出显示不同颜色的连续匹配,但由于插件设置,终端限制或其他原因,在您的情况下,只有其他所有组可能会突出显示。