Tim*_*Tim 139 python regex encoding gedit
我发现123
,\d
匹配1
,3
但没有2
.我想知道是否\d
匹配满足什么样的要求的数字?我在谈论Python风格的正则表达式.
Gedit中的正则表达式插件使用Python风格的正则表达式.我创建了一个文本文件,其内容为
123
Run Code Online (Sandbox Code Playgroud)
只有1
和3
正则表达式相匹配\d
; 2
不是.
通常对于其间没有其他字符的数字序列,只有奇数位数是匹配的,偶数位数不是.例如12345
,匹配是1
,3
和5
.
Kir*_*huk 449
[0-9]
并不总是等同于\d
.在python3中,[0-9]
仅匹配0123456789
字符,\d
匹配[0-9]
和其他数字字符,例如东部阿拉伯数字??????????
.
在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>
Run Code Online (Sandbox Code Playgroud)
小智 7
这只是一个猜测,但我认为您的编辑器实际上匹配了每个数字——1
2
3
但只突出显示奇数匹配,以将其与123
匹配整个字符串的情况区分开来。
大多数正则表达式控制台以不同的颜色突出显示连续匹配,但由于插件设置、终端限制或其他原因,在您的情况下,可能只会突出显示所有其他组。