Normal ifadeler

Temel dize bulma ve ayıklama için normal bir ifade yerine indexOf() , substr() veya substring() gibi String sınıfı yöntemlerini kullanın.

Düzenli bir ifade kullanarak yapılabilen bazı işlemler String sınıfının yöntemlerinin kullanımıyla da gerçekleştirilebilir. Örneğin, bir dizenin başka bir dize içerip içermediğini belirlemek için, String.indexOf() yöntemini veya düzenli bir ifade kullanabilirsiniz. Ancak, bir String sınıfı yöntemi mevcut olduğunda, ona denk olan düzenli ifadeden daha hızlı çalışır ve başka bir nesnenin oluşturulmasını gerektirmez.

Öğeleri gruplandırmanız gerekiyorsa ancak sonuç olarak grup içeriklerini yalıtmanız gerekmiyorsa, normal ifadenin içindeki bir grup (“ (xxxx) ”) yerine yakalama yapmayan bir grup (“ (?:xxxx) ”) kullanın.

Orta karmaşıklıktaki normal ifadelerde, genellikle ifadenin parçalarını grup olacak şekilde bir araya getirirsiniz. Örneğin, aşağıdaki düzenli ifade deseninde, parantezler “ab” metninin etrafında bir grup oluşturur. Bunun sonucunda, “+” nicelik belirteci tek bir karakter yerine gruba uygulanır:

/(ab)+/

Varsayılan olarak, grupların her birinin içeriği “yakalanır”. Deseninizdeki grupların her birinin içeriğini düzenli ifadeyi çalıştırmanın sonucunun bir parçası olarak alabilirsiniz. Bu grup sonuçlarının yakalanması, grup sonuçlarını içerecek nesneler oluşturulduğu için daha uzun sürer ve daha fazla bellek gerektirir. Buna alternatif olarak, açma parantezinden sonra bir soru işareti ve iki nokta ekleyerek yakalama yapmayan grup sözdizimini kullanabilirsiniz. Bu sözdizimi karakterlerin bir grup gibi davrandığını ancak sonuç için yakalanmadığını belirtir.

/(?:ab)+/

Yakalama yapmayan grup sözdizimi daha hızlı sonuç verir ve standart grup sözdizimine göre daha az bellek kullanır.

Düzenli bir ifade yetersiz performans gösterirse alternatif bir düzenli ifade yapısı kullanmayı deneyin..

Bazen, aynı metin yapısının test edilmesi veya tanımlanması için birden fazla düzenli ifade yapısı kullanılabilir. Çeşitli nedenlerden dolayı, belirli yapılar alternatiflerinden daha hızlı çalışır. Normal bir ifadenin kodunuzu gerektiğinden daha yavaş çalıştırdığını belirlerseniz, aynı sonucu veren alternatif normal desenleri kullanmayı düşünün. Hangisinin daha hızlı olduğuna karar vermek için bu alternatif desenleri test edin.