J'ai trouvé ça dans 123
, \d
correspond 1
et 3
mais pas 2
. Je me demandais si \d
correspond à un chiffre satisfaisant quel type d'exigence? Je parle de regex de style Python.
Le plugin d'expression régulière dans Gedit utilise l'expression régulière de style Python. J'ai créé un fichier texte dont le contenu est
123
Seulement 1
et 3
sont mis en correspondance par l'expression rationnelle \d
; 2
n'est pas.
Généralement, pour une séquence de nombres de chiffres sans autres caractères entre les deux, seuls les chiffres d'ordre impair sont des correspondances, et les chiffres d'ordre pair ne le sont pas. Par exemple dans 12345
, les correspondances sont 1
, 3
et 5
.
\d
correspondra1
,2
et3
. Si ce n'est pas le cas, il doit y avoir autre chose dans votre expression. Pouvez-vous montrer votre pleine expression?\d
est un raccourci pour[0-9]
, donc il doit correspondre2
. Veuillez publier un cas de test complet (un script qui peut être exécuté, qui démontre votre problème) et peut-être que nous pourrons comprendre ce qui ne va pas.11111
et22222
.Réponses:
[0-9]
n'est pas toujours équivalent à\d
. Dans python3,[0-9]
correspond uniquement aux0123456789
caractères, tandis que les\d
correspondances[0-9]
et autres caractères numériques, par exemple les chiffres arabes de l'Est٠١٢٣٤٥٦٧٨٩
.la source
import re, re.match(r'\d', '٠١٢٣٤٥٦٧٨٩')
ne montre aucun matchPython
et\d
correspond à tous les chiffres Unicode uniquement en Python3. Dans Python 2.7, c'est toujours l'ancien ASCII[0-9]
- cela pourrait valoir la peine d'être clarifié dans la réponse. :)\d
correspond à n'importe quel chiffre dans la plupart des styles de grammaire regex, y compris python. Référence Regexla source
Dans l'expression régulière de style Python,
\d
correspond à n'importe quel chiffre individuel. Si vous voyez quelque chose qui ne semble pas faire cela, veuillez fournir le regex complet que vous utilisez, plutôt que de simplement décrire ce symbole particulier.la source
123
.\\d{3}
correspond à n'importe quelle séquence de trois chiffres en Java.la source
\\d+
Ce n'est qu'une supposition, mais je pense que votre éditeur correspond en fait à chaque chiffre -
1
2
3
- mais seules les correspondances impaires sont mises en évidence, pour le distinguer du cas où la123
chaîne entière est mise en correspondance.La plupart des consoles regex mettent en évidence des correspondances contiguës avec des couleurs différentes, mais en raison des paramètres du plugin, des limitations du terminal ou pour une autre raison, seul tous les autres groupes peuvent être mis en évidence dans votre cas.
la source
Informations concernant .NET / C #:
Informations: https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-classes-in-regular-expressions#decimal-digit-character-d
la source