Heim > Backend-Entwicklung > C++ > Ist \ d wirklich weniger effizient als [0-9] oder [0123456789] in Regex?

Ist \ d wirklich weniger effizient als [0-9] oder [0123456789] in Regex?

Patricia Arquette
Freigeben: 2025-01-31 18:36:10
Original
918 Leute haben es durchsucht

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

ds Effizienz im regulären Ausdruck ist nicht so effizient wie [0-9]

In der jüngsten Diskussion stellten einige Leute die Effizienz der Verwendung von anstelle von

oder

in regulären Ausdrücken in Frage. Unerwartet zeigt der Test in der C#-Motor der regulären Expression, dass die Effizienz von [0123456789] niedriger ist als die beiden anderen Optionen. [0-9] d Die mögliche Ursache für niedrige Effizienz d

Unicode-Nummer:

enthält alle Unicode-Zahlen, nicht nur die gemeinsame 0-9. Daher können die analytischen nicht standardmäßigen Zahlen die Geschwindigkeit der regulären Expressionsmotoren verlangsamen.
  1. unnötige zusätzliche Funktion: einschließlich zusätzlicher Funktionen als d, muss möglicherweise kompliziertere Verarbeitung erforderlich sein. Diese zusätzlichen Funktionen beeinflussen die Effizienz.
  2. Testergebnisse d [0-9] Um dieses Problem zu beweisen, wurden die folgenden Tests durchgeführt:

10.000 zufällige Zeichenfolge, jede Zeichenfolge enthält 1.000 Zeichen, von denen die Hälfte Zahlen enthält. Jeder reguläre Ausdruck (

,

,

) Zeit, um die ausgegebene Zeichenfolge zu verarbeiten:
  • regulärer Ausdruck Zeit der Prozentsatz der Zeit im Vergleich zu D > 00: 00: 00.2141226 100% > 00: 00: 00.1357972 63,42% > 00: 00: 00.1388997 64,87%
  • Die Ergebnisse zeigen, dass und
  • in Bezug auf die Effizienz signifikant besser sind als d. [0-9] [0123456789] Schlussfolgerung
正则表达式 时间 相对d的时间百分比
d 00:00:00.2141226 100%
[0-9] 00:00:00.1357972 63.42%
[0123456789] 00:00:00.1388997 64.87%
Obwohl eine größere Anzahl digitaler Übereinstimmungsfunktionen liefern kann, wird es in Bezug auf die Leistung geopfert. Für Anwendungen vom Typ Key -Typ wird empfohlen, präzisere

oder [0-9] zu verwenden. [0123456789]

Das obige ist der detaillierte Inhalt vonIst \ d wirklich weniger effizient als [0-9] oder [0123456789] in Regex?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage