\ d не так эффективно, как [0-9]
]] в недавних дискуссиях некоторые люди подвергли сомнению эффективность использования [0123456789]
вместо [0-9]
или \ d
в регулярных выражениях. Удивительно, но тестирование в двигателе регулярного выражения C# показало, что \ d
менее эффективно, чем два других варианта.
возможные причины неэффективности
\ d
содержит все номера Unicode, а не просто общий 0-9. Следовательно, нестандартные цифры могут замедлить регулярное выражение двигателя. \ d
содержит дополнительные функции, отличные от [0-9]
, которые могут потребовать более сложной обработки. Эти дополнительные функции могут повлиять на эффективность. результаты теста
, чтобы доказать эту проблему, были выполнены следующие тесты:
] \ d
, [0-9]
, ,
[0123456789] ] | регулярное выражение] | времяпроцент времени относительно \ d |
---|---|---|
]
\ d | ] | 00: 00: 00.2141226 | ]
]
]
[0-9] | ] | 00: 00: 00.1357972 | ]
]
]
| [0123456789] ] | ]] | 00: 00: 00.1388997
]
]
]
результаты показывают, что
[0-9] и
[0123456789]
\ d с точки зрения эффективности. ]
в заключение
while
\ d может предоставить более широкий диапазон возможностей цифрового сопоставления, он приносит в жертву производительность. Для критически важных приложений рекомендуется использовать проще
[0-9]
[0123456789] .
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3