Eu descobri isso em 123
, \d
correspondências 1
e 3
mas não 2
. Eu queria saber se \d
corresponde a um dígito satisfazendo que tipo de requisito? Eu estou falando sobre regex estilo Python.
O plug-in de expressão regular no Gedit está usando o regex no estilo Python. Criei um arquivo de texto com seu conteúdo
123
Somente 1
e 3
são correspondidos pelo regex \d
; 2
não é.
Geralmente, para uma sequência de números de dígitos sem outros caracteres, apenas os dígitos ímpares da ordem são correspondentes e os dígitos pares não. Por exemplo 12345
, em , as correspondências são 1
, 3
e 5
.
\d
irá corresponder a1
,2
e3
. Caso contrário, deve haver algo mais na sua expressão. Você pode mostrar sua expressão completa?\d
é uma abreviação de[0-9]
, então deve corresponder2
. Poste um caso de teste completo (um script que possa ser executado, que demonstre seu problema) e talvez possamos descobrir o que está errado.11111
e22222
.Respostas:
[0-9]
nem sempre é equivalente a\d
. No python3,[0-9]
corresponde apenas a0123456789
caracteres, enquanto\d
corresponde a[0-9]
outros caracteres de dígito, por exemplo, algarismos arábicos orientais٠١٢٣٤٥٦٧٨٩
.fonte
import re, re.match(r'\d', '٠١٢٣٤٥٦٧٨٩')
não mostra resultadosPython
e\d
corresponde a qualquer dígito Unicode apenas no Python3. No Python 2.7, ainda é o antigo ASCII[0-9]
- pode valer a pena esclarecer isso na resposta. :)\d
corresponde a qualquer dígito único na maioria dos estilos gramaticais regex, incluindo python. Referência Regexfonte
No regex no estilo Python,
\d
corresponde a qualquer dígito individual. Se você estiver vendo algo que parece não fazer isso, forneça o regex completo que você está usando, em vez de apenas descrever esse símbolo em particular.fonte
123
.\\d{3}
corresponde a qualquer sequência de três dígitos em Java.fonte
\\d+
Isso é apenas um palpite, mas acho que seu editor realmente corresponde a cada dígito -
1
2
3
- mas apenas as correspondências ímpares são destacadas, para diferenciá-lo do caso em que toda a123
string é correspondida.A maioria dos consoles regex destaca correspondências contíguas com cores diferentes, mas devido às configurações do plug-in, às limitações do terminal ou por algum outro motivo, apenas todos os outros grupos podem ser destacados no seu caso.
fonte
Informações sobre .NET / C #:
Informações: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions#decimal-digit-character-d
fonte