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.d
, muss möglicherweise kompliziertere Verarbeitung erforderlich sein. Diese zusätzlichen Funktionen beeinflussen die Effizienz. 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: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% |
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!