He descubierto que en 123
, \d
partidos 1
y 3
pero no 2
. Me preguntaba si \d
coincide con un dígito que satisfaga qué tipo de requisito. Estoy hablando de expresiones regulares de estilo Python.
El complemento de expresión regular en Gedit está utilizando expresiones regulares de estilo Python. Creé un archivo de texto con su contenido
123
Solo 1
y 3
se corresponden con la expresión regular \d
; 2
no es.
En general, para una secuencia de números de dígitos sin otros caracteres intermedios, solo los dígitos de orden impar coinciden y los dígitos de orden par no. Por ejemplo en 12345
, las coincidencias son 1
, 3
y 5
.
\d
coincidirá1
,2
y3
. Si no es así, debe haber algo más en su expresión. ¿Puedes mostrar tu expresión completa?\d
es la abreviatura de[0-9]
, por lo que debe coincidir2
. Publique un caso de prueba completo (un script que se pueda ejecutar, que demuestre su problema) y tal vez podamos descubrir qué está mal.11111
y22222
.Respuestas:
[0-9]
no siempre es equivalente a\d
. En python3,[0-9]
solo coincide con0123456789
caracteres, mientras que\d
coincide[0-9]
y otros caracteres de dígitos, por ejemplo, números arábigos orientales٠١٢٣٤٥٦٧٨٩
.fuente
import re, re.match(r'\d', '٠١٢٣٤٥٦٧٨٩')
no muestra coincidenciaPython
y\d
coincide con cualquier dígito Unicode solo en Python3. En Python 2.7 sigue siendo el viejo ASCII[0-9]
, podría valer la pena aclarar eso en la respuesta. :)\d
coincide con cualquier dígito en la mayoría de los estilos de gramática de expresiones regulares, incluido python. Referencia de expresiones regularesfuente
En la expresión regular de estilo Python,
\d
coincide con cualquier dígito individual. Si está viendo algo que no parece hacer eso, proporcione la expresión regular completa que está usando, en lugar de solo describir ese símbolo en particular.fuente
123
.\\d{3}
coincide con cualquier secuencia de tres dígitos en Java.fuente
\\d+
Esto es solo una suposición, pero creo que su editor realmente coincide con cada dígito,
1
2
3
pero solo se resaltan las coincidencias impares, para distinguirlo del caso cuando la123
cadena completa coincide.La mayoría de las consolas regex resaltan coincidencias contiguas con diferentes colores, pero debido a la configuración del complemento, las limitaciones del terminal o por alguna otra razón, solo todos los demás grupos pueden resaltarse en su caso.
fuente
Información sobre .NET / C #:
Información: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions#decimal-digit-character-d
fuente