\ d não é tão eficiente quanto [0-9]
] Nas discussões recentes, algumas pessoas questionaram a eficiência de usar [0123456789]
em vez de [0-9]
ou \ d
em expressões regulares. Surpreendentemente, os testes no mecanismo de expressão regular C# mostraram que \ d
é menos eficiente do que as outras duas opções.
causas possíveis de ineficiência
\ d
contém todos os números Unicode, não apenas o 0-9 comum. Portanto, a análise de números não padrão pode desacelerar o motor de expressão regular. \ d
contém recursos adicionais diferentes [0-9]
, que podem exigir processamento mais complexo. Esses recursos adicionais podem afetar a eficiência. Resultados dos testes
para provar esse problema, foram realizados os seguintes testes:
\ d
, [0-9]
, ,
[0123456789] Expressão regular | tempo | porcentagem do tempo em relação a \ d |
---|---|---|
\ d | ] | 00: 00: 00.2141226 |
| [0-9] ] | 00: 00: 00.1357972|
| [0123456789] | 00: 00: 00.1388997 |
Os resultados mostram que
[0-9] e
[0123456789]
\ d em termos de eficiência.
para concluir
while
\ d pode fornecer uma gama mais ampla de recursos de correspondência digital, ele sacrificou o desempenho. Para aplicações críticas de desempenho, recomenda-se usar os mais simples
[0-9]
[0123456789] .
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3