09 Şubat 2022

Java'da Regular Expression (Regex) Kullanımı

Merhaba bu yazımızda Regular Expression (Regex) nedir? Sıklıkla kullanılan regex tanımları nelerdir? Meta karakterler nelerdir? Nasıl nicelik belirlenir? Regex ile pattern dışlama ve gruplama gibi konulara değineceğiz.

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

https://www.baeldung.com/regular-expressions-java