Gebruik methoden van de klasse String, zoals
indexOf()
,
substr()
of
substring()
, in plaats van reguliere expressies voor het zoeken naar en extraheren van tekenreeksen.
Bepaalde bewerkingen die kunnen worden uitgevoerd met een reguliere expressie kunnen ook worden uitgevoerd met methoden van de klasse String. Als u bijvoorbeeld wilt achterhalen of een tekenreeks een andere tekenreeks bevat, kunt u de methode
String.indexOf()
of een reguliere expressie gebruiken. Als er echter een methode van de klasse String beschikbaar is, wordt deze sneller uitgevoerd dan de vergelijkbare reguliere expressie, en hoeft er bovendien geen extra object te worden gemaakt.
Gebruik in een reguliere expressie een niet-vastleggende groep ("
(?:xxxx)
") in plaats van een groep ("
(xxxx)
") om elementen te groeperen zonder de inhoud van de groep in het resultaat te isoleren.
In reguliere expressies van gemiddelde complexiteit worden delen van de expressie vaak gegroepeerd. In het volgende reguliere expressiepatroon wordt bijvoorbeeld met haakjes een groep rond de tekst "ab" gemaakt. De hoeveelheidsbepaler "+" is van toepassing op de groep en niet op één teken:
/(ab)+/
De inhoud van elke groep wordt standaard "vastgelegd". De inhoud van elke groep kan in het patroon worden geplaatst als onderdeel van het resultaat van het uitvoeren van de reguliere expressie. Het vastleggen van deze groepsresultaten duurt langer en vereist meer geheugen, omdat er objecten worden gemaakt waarin de groepsresultaten worden geplaatst. U kunt ook de syntaxis voor een niet-vastleggende groep gebruiken. Dit doet u door een vraagtaken en dubbele punt te plaatsen na het haakje openen. Deze syntaxis geeft aan dat de tekens zich als een groep gedragen, maar niet voor het resultaat worden vastgelegd:
/(?:ab)+/
De syntaxis voor een niet-vastleggende groep is sneller en gebruikt minder geheugen dan de standaardsyntaxis voor groepen.
Gebruik een ander·patroon voor een reguliere expressie als deze slechte prestaties oplevert.
Soms kan er meer dan één regulier expressiepatroon worden gebruikt om een tekstpatroon te identificeren. Om verschillende redenen worden bepaalde patronen sneller uitgevoerd dan andere. Als u vaststelt dat een reguliere expressie ervoor zorgt dat de code langzamer wordt uitgevoerd dan nodig is, kunt u alternatieve reguliere-expressiepatronen overwegen die tot hetzelfde resultaat leiden. Test deze alternatieve patronen om te bepalen welke het snelste is.
|
|
|