Я обнаружил , что в 123
, \d
спички 1
и , 3
но не 2
. Мне было интересно, \d
соответствует ли цифра, удовлетворяющая какому требованию? Я говорю о регулярных выражениях в стиле Python.
Плагин регулярных выражений в Gedit использует регулярные выражения в стиле Python. Я создал текстовый файл с содержанием
123
Только 1
и 3
соответствуют регулярному выражению \d
; 2
не является.
Обычно для последовательности чисел без других символов между ними только цифры нечетного порядка являются совпадениями, а цифры четного порядка - нет. Например , в 12345
, спички 1
, 3
и 5
.
\d
будет соответствовать1
,2
и3
. Если этого не произойдет, должно быть что-то еще в вашем выражении. Можете ли вы показать свое полное выражение?\d
является сокращением[0-9]
, поэтому оно должно совпадать2
. Пожалуйста, опубликуйте полный тестовый пример (скрипт, который можно запустить, который демонстрирует вашу проблему), и, возможно, мы сможем выяснить, в чем дело.11111
и22222
.Ответы:
[0-9]
не всегда эквивалентна к\d
. В python3[0-9]
соответствует только0123456789
символам, а\d
соответствует[0-9]
и другим цифровым символам, например восточно-арабским цифрам٠١٢٣٤٥٦٧٨٩
.источник
import re, re.match(r'\d', '٠١٢٣٤٥٦٧٨٩')
показывает совпаденийPython
и\d
соответствует любым цифрам Unicode только в Python3. В Python 2.7 это все еще старый ASCII[0-9]
- возможно, стоит пояснить это в ответе. :)\d
соответствует любой единственной цифре в большинстве стилей грамматики регулярных выражений, включая python. Regex Referenceисточник
В регулярном выражении в стиле Python
\d
соответствует любой отдельной цифре. Если вы видите что-то, что, кажется, не делает этого, пожалуйста, предоставьте полное регулярное выражение, которое вы используете, в отличие от простого описания этого конкретного символа.источник
123
.\\d{3}
соответствует любой последовательности из трех цифр в Java.источник
\\d+
Это всего лишь предположение, но я думаю, что ваш редактор на самом деле сопоставляет каждую цифру -
1
2
3
но выделяются только нечетные совпадения, чтобы отличить его от случая, когда123
сопоставляется вся строка.Большинство консолей регулярных выражений выделяют непрерывные совпадения разными цветами, но из-за настроек плагина, ограничений терминала или по какой-либо другой причине в вашей ситуации может быть выделена только любая другая группа.
источник
Информация о .NET / C #:
Информация: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions#decimal-digit-character-d
источник