问题:正则表达式中的“ \ d”表示数字吗?
我发现123
,\d
比赛1
和3
,但不会2
。我想知道\d
匹配的数字是否满足哪种要求?我说的是Python样式的正则表达式。
Gedit中的正则表达式插件使用Python样式正则表达式。我创建了一个文本文件,其内容为
123
正则表达式只1
与3
匹配\d
;2
不是。
通常,对于一系列数字,中间没有其他字符,只有奇数位是匹配的,偶数位不是。对于例如12345
,比赛是1
,3
和5
。
回答 0
[0-9]
并不总是等同于\d
。在python3中,[0-9]
仅匹配0123456789
字符,而\d
匹配[0-9]
其他字符,例如东部阿拉伯数字٠١٢٣٤٥٦٧٨٩
。
回答 1
\d
匹配大多数正则表达式语法样式中的任何一位,包括python。
正则表达式参考
回答 2
在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>
回答 3
\\d{3}
匹配Java中任意三位数字的序列。
回答 4
这只是一个猜测,但我认为您的编辑器实际上会匹配每个数字,1
2
3
但是会突出显示奇数匹配,以区别于整个123
字符串都匹配的情况。
大多数正则表达式控制台使用不同的颜色突出显示连续的匹配项,但是由于插件设置,终端限制或其他原因,在您的情况下,可能仅突出显示每个其他组。
回答 5
有关.NET / C#的信息:
小数位字符:\ d \ d匹配任何小数位。它等效于\ p {Nd}正则表达式模式,其中包括标准的十进制数字0-9和许多其他字符集的十进制数字。
如果指定了ECMAScript兼容行为,则\ d等效于[0-9]。有关ECMAScript正则表达式的信息,请参阅正则表达式选项中的“ ECMAScript匹配行为”部分。
信息:https : //docs.microsoft.com/zh-cn/dotnet/standard/base-types/character-classes-in-regular-expressions#decimal-digit-character-d