"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comparaison de l'efficacité entre \\ d et \ [0-9 \] ou \ [0123456789 \] dans des expressions régulières

Comparaison de l'efficacité entre \\ d et \ [0-9 \] ou \ [0123456789 \] dans des expressions régulières

Publié le 2025-04-15
Parcourir:277

Is \d Really Less Efficient Than [0-9] or [0123456789] in Regex?

\ d n'est pas aussi efficace que [0-9]

]

Dans les discussions récentes, certaines personnes ont remis en question l'efficacité de l'utilisation [0123456789] au lieu de [0-9] ou \ d dans des expressions régulières. Étonnamment, le test dans le moteur d'expression régulière C # a montré que \ d est moins efficace que les deux autres options.

Causes possibles de l'inefficacité

  1. Nombres Unicode: \ d Contient tous les nombres Unicode, pas seulement le 0-9 commun. Par conséquent, l'analyse des nombres non standard peut ralentir le moteur d'expression régulière.
  2. Fonctions supplémentaires inutiles: \ d Contient des fonctionnalités supplémentaires autres que [0-9] , ce qui peut nécessiter un traitement plus complexe. Ces caractéristiques supplémentaires peuvent affecter l'efficacité.

Résultats du test

Pour prouver ce problème, les tests suivants ont été effectués:

  • 10 000 chaînes aléatoires, chacune contenant 1000 caractères, dont la moitié contiennent des nombres.
  • Temps passé à traiter les chaînes pour chaque expression régulière ( \ d , [0-9] , , [0123456789]
  • ):
] Expression régulière temps pourcentage de temps par rapport à \ d ] 100% [0-9] 00: 00: 00.1357972 63.42% ] 00: 00: 00.1388997
\d 00: 00: 00.2141226
]
[0123456789] ]
64,87%

Les résultats montrent que [0-9] et

[0123456789]

sont nettement meilleurs que \ d en termes d'efficacité.

en conclusion Bien que \ d puisse fournir une gamme plus large de capacités de correspondance numérique, il a sacrifié les performances. Pour les applications critiques de performance, il est recommandé d'utiliser le plus simple

[0-9]

ou Is \d Really Less Efficient Than [0-9] or [0123456789] in Regex?
[0123456789]

.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3