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
.
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.[0-9]
is not always equivalent to\d
. In python3,[0-9]
matches only0123456789
characters, while\d
matches[0-9]
and other digit characters, for example Eastern Arabic numerals٠١٢٣٤٥٦٧٨٩
.\d
matches any single digit in most regex grammar styles, including python. Regex ReferenceThis is just a guess, but I think your editor actually matches every single digit —
1
2
3
— but only odd matches are highlighted, to distinguish it from the case when the whole123
string is matched.Most regex consoles highlight contiguous matches with different colors, but due to the plugin settings, terminal limitations or for some other reason, only every other group might be highlighted in your case.
\\d{3}
matches any sequence of three digits in Java.