Если у вас несколько сотен слов, вам нужно остерегаться порядка слов в регулярном выражении.Механизм регулярных выражений ищет слова слева направо .
Если вы проверяете слово setValue
на чередование set|setValue
, оно будет соответствовать только трем буквам, содержащим "набор", а невся строка.
См. эту ссылку (с www.regular-expressions.info) для полного объяснения.
Я не думаю, что механизм регулярных выражений действительнооптимизирует чередование (т. е. анализирует общие префиксы и соответственно строит nfa).Поэтому, с таким количеством слов, я не думаю, что это будет оптимизация.
Помимо переупорядочения слов, вы также можете попробовать добавить слово или границу строки после чередования, например, (set|setValue)$
,но я подозреваю, что движок регулярных выражений будет выполнять много шагов назад, поэтому он может не стоить усилий.