«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Сравнение эффективности между \\ d и \ [0-9 \] или \ [0123456789 \] в регулярных выражениях

Сравнение эффективности между \\ d и \ [0-9 \] или \ [0123456789 \] в регулярных выражениях

Опубликовано в 2025-04-15
Просматривать:677

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

\ d не так эффективно, как [0-9]

]]

в недавних дискуссиях некоторые люди подвергли сомнению эффективность использования [0123456789] вместо [0-9] или \ d в регулярных выражениях. Удивительно, но тестирование в двигателе регулярного выражения C# показало, что \ d менее эффективно, чем два других варианта.

]

возможные причины неэффективности

    ]
  1. unicode Numbers: \ d содержит все номера Unicode, а не просто общий 0-9. Следовательно, нестандартные цифры могут замедлить регулярное выражение двигателя.
  2. ]
  3. ] ненужные дополнительные функции: \ d содержит дополнительные функции, отличные от [0-9] , которые могут потребовать более сложной обработки. Эти дополнительные функции могут повлиять на эффективность.
  4. ]
]

результаты теста

, чтобы доказать эту проблему, были выполнены следующие тесты:

]
    ]
  • 10000 случайных строк, каждая из которых содержит 1000 символов, половина из которых содержат числа.
  • ]
  • время, проведенное в обработке строк для каждого регулярного выражения ( \ d , [0-9] , , [0123456789]
  • ):
]]] ] ] ] регулярное выражение время процент времени относительно \ d ] ] ] ] ] ] 100%] ] ] 63,42% [0123456789] ] 00: 00: 00.1388997 ] 64,87%
] ]
] \ d 00: 00: 00.2141226
] ] [0-9] 00: 00: 00.1357972
] ] ]]

] ] ] результаты показывают, что [0-9] и [0123456789]

значительно лучше, чем

\ d с точки зрения эффективности. ]

в заключение while \ d может предоставить более широкий диапазон возможностей цифрового сопоставления, он приносит в жертву производительность. Для критически важных приложений рекомендуется использовать проще [0-9]

или

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

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3