У меня есть регулярное выражение в C#, где шаблон 8000 + слова (или группа слов) каждый, разделенные границами слов, а именно:с вопросом # Regular скорости Expression
"\\bword1\\b|\\bword2 word3 word4\\b|.......etc"
Я пытаюсь, чтобы соответствовать слова (или группы слов) в строке для любого слова (или группы слов) в этом выражении. Все работает отлично, но я обнаружил, что для завершения операции в среднем требуется 37 мс.
Интересно, что если я делаю то же самое, но используя String.IndexOf
и некоторые запутанные методы, он работает значительно быстрее (но все же слишком медленный), который я нахожу странным.
Мне известны другие двигатели регулярных выражений, в частности re2/google, но я очень хочу использовать встроенные функции C#, где это возможно.
Если у кого-то есть совет, это будет оценено по достоинству.
те \ Б имеют две косые черты в реальной жизни ... они только что избежали при отправке! –
Вы использовали RegexOptions.Compiled? Tohugh 8000+ Word шаблон довольно перебор, я думаю. – CSharpie
@james Вот почему в редакторе есть опция «формат как код». ;) – Tomalak