"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Comparação da eficiência entre \\ d e \ [0-9 \] ou \ [0123456789] em expressões regulares

Comparação da eficiência entre \\ d e \ [0-9 \] ou \ [0123456789] em expressões regulares

Postado em 2025-04-15
Navegar:359

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

\ 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

  1. números Unicode: \ 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.
  2. Recursos extras desnecessários: \ 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:

  • 10.000 strings aleatórios, cada um contendo 1000 caracteres, metade dos quais contém números.
  • tempo gasto Processando strings para cada expressão regular ( \ d , [0-9] , , [0123456789]
  • :
] Expressão regular tempo porcentagem do tempo em relação a \ d ] 100% [0-9] 00: 00: 00.1357972 63.42% 00: 00: 00.1388997 64,87%
\ d 00: 00: 00.2141226
]
[0123456789]

Os resultados mostram que [0-9] e [0123456789]

são significativamente melhores que

\ 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]

ou

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

Tutorial mais recente Mais>

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