17 Ocak 2019 Perşembe

RegEx Örnekleri

Negate
Genellikle iki string arasındaki şeyi yakalamak için kullanılır.
Örnek
Şöyle yaparız. "SUB" ile başlayıp ",-&succes" ile biten string'ler eşleşir. İki karakter arasındaki herşey yakalanır. Capture group içinde ([^,]*) şeklinde yazarak capture groupin bitiş karakteri verilir.
SUB([^,]*),-&succes
Şöyle yaparız.
String s = "SUB8&20.000,-&succes&09/12/18SUB12&100.000,-&failed&07/12/18SUB16&40.000
,-&succes&09/12/18";
Pattern p = Pattern.compile("SUB([^,]*),-&succes");
Matcher m = p.matcher(s);
while (m.find()) {
  System.out.println(m.group(1));
}
Çıktı olarak şunu alırız.
8&20.000
16&40.000
p - Character Classes
Punctiation karakterleri şunlar olabilir
! (ünlem), $(dolar)

Örnek
Şöyle yaparızall numeric (\\p{N}), letter (\\p{L}), punctuation (\\p{Punct}) anlamına gelir. ^ile tersi (negate) alınır. Böylece emojiler silinir.
String emotionless = aString.replaceAll("[^\\p{L}\\p{N}\\p{Punct}]","");
Bloklara Bölerek Capture Group
Şöyle yaparız. 5 defa 4 karakterlik grup ve bir defa da geri kalan herşeyin olduğu bir grup yaratılır.
str.replaceAll("(.{4})".repeat(5)+"(.*)","$1$2-$3-$4-$5-$6");}
WhiteSpace
Şöyle yaparız
Pattern whitespace = Pattern.compile("\\s");
Şöyle yaparız
Pattern whitespaces = Pattern.compile("\\s+");

Hiç yorum yok:

Yorum Gönder