Регулярные выражения

Вместо регулярных выражений для стандартного поиска и извлечения строки используйте методы класса String, например indexOf() , substr() или substring() .

Определенные операции, выполняемые с использованием регулярного выражения, также можно выполнить с помощью методов класса String. Например, чтобы определить, содержится ли в строке еще одна строка, можно использовать регулярное выражение или метод String.indexOf() . По возможности используйте метод класса String, так как он работает быстрее эквивалентного регулярного выражения и не создает дополнительный объект.

Используйте в регулярном выражении незахватывающую группу (« (?:xxxx) ») вместо группы (« (xxxx) »), если необходимо сгруппировать элементы, не изолируя содержимое группы в результате.

Часто в регулярных выражениях средней сложности части выражения можно сгруппировать. Например, в следующем шаблоне регулярного выражения используются круглые скобки для объединения текста ab в группу. Следовательно, квантификатор «+» применяется к группе, а не к одному символу.

/(ab)+/

По умолчанию содержимое каждой группы «захватывается». Содержимое каждой группы в данном шаблоне можно получить как часть результата выполнения регулярного выражения. Из-за создания дополнительных объектов для хранения результатов групп операция выполняется дольше и требует дополнительные ресурсы памяти. Вместо этого можно использовать синтаксис незахватывающей группы, поставив вопросительный знак с двоеточием после открывающей круглой скобки. Такой синтаксис указывает на то, что символы в круглых скобках образуют группу, однако результат вычисления для этой группы отдельно не сохраняется.

/(?:ab)+/

Использование этого синтаксиса повышает скорость вычислений и использует меньше памяти по сравнению со стандартным синтаксисом группы.

Если обработка регулярного выражения производится медленно, попробуйте использовать альтернативный шаблон регулярного выражения.

Иногда для проверки или идентификации одного и того же шаблона текста можно использовать несколько шаблонов регулярных выражений. По различным причинам некоторые шаблоны обрабатываются быстрее своих аналогов. Если выявлено, что из-за использования регулярного выражения код выполняется медленнее, чем необходимо, рассмотрите возможность использования альтернативных регулярных выражений, позволяющих получить такой же результат. Определите, какой из этих альтернативных шаблонов обрабатывается быстрее.