Expressões regulares

Use métodos da classe String como, por exemplo, indexOf() , substr() ou substring() em vez de uma expressão regular para localizar e extrair sequências de caracteres básicas.

É possível desempenhar certas operações utilizando uma expressão regular, como também utilizando métodos da classe String. Por exemplo, para descobrir se uma sequência de caracteres contém outra sequência de caracteres, é possível usar o método String.indexOf() ou usar uma expressão regular. No entanto, quando está disponível o método da classe String, ela executa mais rápido que a expressão regular equivalente e não requer a criação de outro objeto.

Use um grupo de não captura (“ (?:xxxx) ”) em vez de um grupo (“ (xxxx) ”) em uma expressão regular se precisar agrupar elementos, mas não precisar isolar o conteúdo do grupo no resultado.

Com frequência, em expressões regulares de complexidade moderada, você agrupa partes da expressão. Por exemplo, na seguinte expressão regular, o padrão parênteses cria um grupo ao redor do texto "ab". Como resultado, o quantificador "+" aplica-se ao grupo em vez de a um simples caractere:

/(ab)+/

Como padrão, o conteúdo de cada grupo é "capturado". É possível obter o conteúdo de cada grupo no seu padrão como parte do resultado da execução da expressão regular. Capturar o resultado desse grupo demora mais e requer mais memória porque os objetos são criados para conter resultados de grupos. Como alternativa, é possível usar sintaxe de grupo de não captura, incluindo ponto de interrogação e dois pontos depois de abrir parênteses. Essa sintaxe especifica que os caracteres comportam-se como grupo mas não são capturados para o resultado:

/(?:ab)+/

Utilizar sintaxe de grupo de não captura é mais rápido e utiliza menos memória que sintaxe de grupo padrão.

Considere a utilização de um padrão de expressão regular alternativo, se a expressão regular não tiver bom desempenho.

Às vezes, é possível usar mais de um padrão de expressão regular para testar ou identificar o mesmo padrão de texto. Por vários motivos, certos padrões executam mais rápido que outros alternativos. Se você determinar que uma expressão regular está fazendo o seu código executar mais lentamente do que o necessário, considere padrões de expressões regulares alternativos que obtenham o mesmo resultado. Teste os padrões alternativos para verificar qual é o mais rápido.