"\ D" в регулярном выражении означает цифру?
Я нашел это в 123
, \d
Матчи 1
а также 3
но нет 2
, Мне подумалось, может \d
соответствует цифре, удовлетворяющей какому требованию? Я говорю о регулярных выражениях в стиле Python.
Плагин регулярных выражений в Gedit использует регулярные выражения в стиле Python. Я создал текстовый файл с содержанием
123
Только 1
а также 3
соответствуют регулярному выражению \d
; 2
не является.
Как правило, для последовательности цифр без промежуточных символов только цифры нечетного порядка являются совпадениями, а цифры четного порядка - нет. Например в 12345
Матчи 1
, 3
а также 5
,
5 ответов
[0-9]
не всегда эквивалентно \d
, В python3 [0-9]
только совпадения 0123456789
персонажи, а \d
Матчи [0-9]
и другие цифры, например восточно-арабские цифры ٠١٢٣٤٥٦٧٨٩
,
\d
соответствует любой единственной цифре в большинстве стилей грамматики регулярных выражений, включая python. Regex Reference
В регулярном выражении в стиле 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.
Это всего лишь предположение, но я думаю, что ваш редактор на самом деле соответствует каждой цифре - 1
2
3
- но выделяются только нечетные совпадения, чтобы отличить его от случая, когда целое 123
Строка совпадает.
Большинство консолей регулярных выражений выделяют непрерывные совпадения разными цветами, но из-за настроек плагина, ограничений терминала или по какой-либо другой причине в вашей ситуации может быть выделена только любая другая группа.
Информация о.NET / C#:
Символ десятичной цифры: \d \d соответствует любой десятичной цифре. Он эквивалентен шаблону регулярного выражения \p{Nd}, который включает стандартные десятичные цифры 0–9, а также десятичные цифры ряда других наборов символов.
Если указано поведение, совместимое с ECMAScript, \d эквивалентно [0-9]. Информацию о регулярных выражениях ECMAScript см. В разделе "Соответствие ECMAScript" в параметрах регулярных выражений.
Информация: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions