\ d ist nicht so effizient wie [0-9]
] In jüngsten Diskussionen stellten einige Leute die Effizienz der Verwendung von [0123456789]
anstelle von [0-9]
oder \ d
in regulären Ausdrücken in Frage. Überraschenderweise zeigte das Testen in der C# -Motor der regulären Ausdrucks, dass \ d
weniger effizient ist als die beiden anderen Optionen.
mögliche Ursachen der Ineffizienz
\ d
enthält alle Unicode-Zahlen, nicht nur die gemeinsame 0-9. Daher kann die Parsen nicht standardmäßiger Zahlen den regulären Expressionsmotor verlangsamen. \ d
enthält andere Funktionen als [0-9]
, die möglicherweise eine komplexere Verarbeitung erfordern. Diese zusätzlichen Merkmale können die Effizienz beeinflussen. testen resultes
Um dieses Problem zu beweisen, wurden die folgenden Tests durchgeführt:
\ d
, [0-9]
, ,
[0123456789] reguläres Ausdruck | Zeit | Prozentsatz der Zeit in Bezug auf \ d |
---|---|---|
\D | ] | 00: 00: 00.2141226 |
| [0-9] ] | 00: 00: 00.1357972|
| [0123456789] | ] | ]
Die Ergebnisse zeigen, dass [0-9]
und
in Bezug auf Effizienz signifikant besser sind als \ d .
abschließend
Während \ d
eine größere Auswahl an digitalen Übereinstimmungsfunktionen bereitstellen kann, hat es die Leistung geopfert. Für leistungskritische Anwendungen wird empfohlen, die einfachere
oder [0123456789]
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3