"\ 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.

Это всего лишь предположение, но я думаю, что ваш редактор на самом деле соответствует каждой цифре - 123 - но выделяются только нечетные совпадения, чтобы отличить его от случая, когда целое 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

Другие вопросы по тегам