C # Expression régulière
L'efficacité est inférieure à : Différences de performances d'enquête d
[0-9]
La performance récente est découverte relativement inattendue. Habituellement, l'efficacité du caractère spécifié de la portée doit être plus élevée que le jeu de caractères. De plus, même par rapport au jeu de caractères plus long
montre également l'inconvénient des performances. d
[0-9]
Afin d'expliquer ce résultat surprenant, explorons quelques raisons possibles: [0123456789]
d
<.> 1. Unicode Reconnaissance numérique:
représente tous les numéros Unicode, pas seulement 10 caractères spécifiés dans
. Unicode contient d'autres nombres de diverses langues, telles que les chiffres persans (۱۲۳۴۵۶۷۸۹). Cette plage plus large peut introduire des frais généraux de calcul supplémentaires, réduisant ainsi l'efficacité de .
Afin d'expliquer ce concept, nous pouvons utiliser le code suivant pour générer une liste de tous les numéros Unicode:
d
[0-9]
Cela générera une longue chaîne contenant les caractères suivants (et autres caractères): d
<.> 2. Différences d'implémentation:
<code class="language-csharp">StringBuilder sb = new StringBuilder(); for (UInt16 i = 0; i < 0x10FFFF; i++) { if (char.IsDigit((char)i)) { sb.Append((char)i); } } string allUnicodeDigits = sb.ToString();</code>
Le moteur d'expression régulière peut atteindre
etde différentes manières, ce qui peut entraîner des différences de performances. C # Le moteur d'expression régulière peut spécifiquement optimiser
pour améliorer l'efficacité, et la plage plus large depeut limiter une telle optimisation. Conclusion:
d
Bien qu'il soit surprenant au début, [0-9]
les performances plus lentes peuvent être attribuées à sa reconnaissance d'expansion des nombres Unicode. Lorsque vous utilisez un ensemble de nombres limité (tel que 0-9), [0-9]
ou d
peut fournir une meilleure efficacité. Cependant, si vous devez correspondre à une gamme plus large de nombres à partir de différentes langues,
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!