Reguljära uttryck

Använd metoder i String-klassen, t.ex. indexOf() , substr() och substring() , i stället för reguljära uttryck för grundläggande sökning och extrahering av strängar.

Vissa åtgärder som kan utföras med ett reguljärt uttryck kan även utföras med metoder i String-klassen. Om du t.ex. vill ta reda på om en sträng innehåller en annan sträng kan du antingen använda metoden String.indexOf() eller ett reguljärt uttryck. En metod i String-klassen körs snabbare än motsvarande reguljära uttryck och ytterligare ett objekt behöver inte skapas.

Använd en icke hämtande grupp (” (?:xxxx) ”) i stället för en grupp (” (xxxx) ”) i ett reguljärt uttryck om du vill gruppera element men inte behöver isolera innehållet i gruppen i resultatet.

I reguljära uttryck med medelmåttlig komplexitet grupperar du ofta delar av uttrycket tillsammans. I följande reguljära uttrycksmönster skapar t.ex. parentesen en grupp runt texten ”ab.” Därför tillämpas kvantifieraren ”+” på gruppen i stället för ett tecken:

/(ab)+/

Som standard ”hämtas” innehållet i varje grupp. Du kan hämta innehållet i varje grupp i mönstret som en del av resultatet när det reguljära uttrycket verkställs. Att hämta sådana gruppresultat tar längre tid och kräver mer minne eftersom objekt skapas för att innehålla gruppresultaten. Som ett alternativ kan du använda en icke hämtande gruppsyntax genom att inkludera ett frågetecken och ett kolon efter det inledande parentestecknet. Syntaxen anger att tecknen beter sig som en grupp men inte hämtas av resultatet:

/(?:ab)+/

Att använda en icke hämtande gruppsyntax är snabbare och använder mindre minne än den vanliga gruppsyntaxen.

Överväg att använda ett alternativt reguljärt uttrycksmönster om ett reguljärt uttryck fungerar dåligt.

Ibland kan mer än ett reguljärt uttrycksmönster användas för att testa efter eller identifiera samma textmönster. Av olika anledningar verkställs vissa mönster snabbare än andra alternativ. Om du fastställer att ett reguljärt uttryck gör att koden körs långsammare än nödvändigt, ska du överväga att använda reguljära uttrycksmönster som uppnår samma resultat Testa de olika alternativa mönstren för att se vilket som är snabbast.