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.
|
|
|