Ответ 1
[0-9]
не всегда эквивалентен до \d
. В python3 [0-9]
соответствует только символам 0123456789
, а \d
соответствует [0-9]
и другим цифровым символам, например восточным арабским цифрам ٠١٢٣٤٥٦٧٨٩
.
Я обнаружил, что в 123
, \d
соответствует 1
и 3
, но не 2
. Мне было интересно, соответствует ли \d
цифре, удовлетворяющей какому требованию? Я говорю о регулярном выражении стиля Python.
Плагин регулярных выражений в Gedit использует регулярное выражение стиля Python. Я создал текстовый файл с его содержимым
123
Только 1
и 3
соответствуют регулярному выражению \d
; 2
нет.
Как правило, для последовательности номеров цифр без других символов между ними используются только цифры нечетного порядка, а четные порядковые цифры - нет. Например, в 12345
совпадения: 1
, 3
и 5
.
[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>
\\d{3}
соответствует любой последовательности из трех цифр в Java.
\d
соответствует любой отдельной цифре в большинстве стилей грамматики регулярных выражений, включая python. Ссылка на Regex
Это просто предположение, но я думаю, что ваш редактор фактически соответствует каждой цифре - 1
2
3
- но подсвечиваются только нечетные совпадения, чтобы отличить его от случая, когда целая строка 123
соответствует.
Большинство консолей регулярных выражений выделяют непрерывные совпадения с разными цветами, но из-за настроек плагина, ограничений терминала или по какой-либо другой причине в вашем случае может быть выделена только каждая другая группа.