Does "\d" in regex mean a digit?
I found that in 123
, d
matches 1
and 3
but not 2
. I was wondering if d
matches a digit satisfying what kind of requirement? I am talking about Python style regex.
Regular expression plugin in Gedit is using Python style regex. I created a text file with its content being
123
Only 1
and 3
are matched by the regex d
; 2
is not.
Generally for a sequence of digit numbers without other characters in between, only the odd order digits are matches, and the even order digits are not. For example in 12345
, the matches are 1
, 3
and 5
.
[0-9]
is not always equivalent to d
. In python3, [0-9]
matches only 0123456789
characters, while d
matches [0-9]
and other digit characters, for example Eastern Arabic numerals ٠١٢٣٤٥٦٧٨٩
.
In Python-style regex, d
matches any individual digit. If you're seeing something that doesn't seem to do that, please provide the full regex you're using, as opposed to just describing that one particular symbol.
>>> 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{3}
匹配Java中任意三位数字的序列。
上一篇: 正则表达式vs while循环
下一篇: 正则表达式中的“\ d”是指数字吗?