Java'da Regular Expression (Regex) Kullanımı
JAVA REGEX NEDİR?
Regular Expression (Regex) string arama pattern’idir. Arama pattern’i tek bir karakter olabileceği gibi harf, rakam ve özel karakterlerden oluşan karakter grubu da olabilir.
Regex, String arama ve String üzerinde değişiklik yapmak için kullanılır.
Java’da Regex için tanımlı sınıflar aşağıda belirtilmiştir:
Pattern: Regular expression tanımını tutar. Public constructor’ı yoktur. Static compile method çağırılır ve parameter olarak regular expression tanımı verilir.
Matcher: Pattern objesinde tanımlı olan regular expression’ı String üzerine uygular. Public constructor’ı yoktur. Pattern objesinin static matcher method çağırılır ve parametre olarak üzerinde regular expression uygulanacak string verilir.
PatternSyntaxException: Tanımlanan regular expression’da syntax hatası varsa oluşan hatadır.
SIKLIKLA KULLANILAN REGULAR EXPRESSION TANIMLARI
META KARAKTERLER
NİCELİK BELİRLEME
GRUP REGEX KULLANIMI
Birden fazla regex kuralı, parantez işaretleri içerisinde yan yana tanımlanarak gruplanabilir; String içerisinde arama ve değiştirme işlemlerinde kullanılabilir. Grubun her bir öğesine $ işareti ve erişilmek istenen regex’in gruptaki sıra numarası ile erişilebilir.
Örneğin, aşağıdaki kod bloğu, kelime ile nokta veya virgül arasındaki tüm whitespace karakterlerini siler.
String EXAMPLE_TEST = "Proven \n. Bilişim\t,";
String pattern = "(\\w)(\\s+)([\\.,])";
System.out.println(EXAMPLE_TEST.replaceAll(pattern, "$1$3"));
Kod çalıştırılınca oluşan çıktı:
Proven. Bilişim,
NEGATİF REGEX KULLANIMI
Negatif regex kullanımı ile istenilen bir pattern’in aranan String’in içerisinde olmaması sorgulanabilir. Bir String’in başka bir String’den sonra gelmemesi durumu kontrol edilebilir. Örneğin a karakteri varsa ve b karakteri ardışığı değilse durumunun kontrolü aşağıda belirtilmiştir:
a(?!b)
STRING METHODLARI İLE REGEX KULLANIMI
Java’daki String sınıfı regular expression kullanımı ek bir kütüphane kullanımına gerek kalmadan destekler. matches(), split(), replaceFirst() ve replaceAll() methodlarında kullanılabilir. Methodların açıklamaları aşağıdaki tabloda verilmiştir.
REFERANSLAR
https://www.w3schools.com/java/java_regex.asp
https://www.javatpoint.com/java-regex
https://www.vogella.com/tutorials/JavaRegularExpressions/article.html