Giriş
Düzenli İfade (Regular Expression veya RegEx) için temel sınıftır.
compile metodu - string
Verilen düzenli ifadeyi bir nesne haline getirir.
splitAsStream metodu yazısına taşıdım
Düzenli İfade (Regular Expression veya RegEx) için temel sınıftır.
compile metodu - string
Verilen düzenli ifadeyi bir nesne haline getirir.
Pattern pattern = Pattern.compile("...");
Gördüğüm örneklerAlphaNumeric = [A-Za-z\\d]+
Numeric = \\d+
Spaces = [ \t]+
Date in DD-MM-YYY =([012]\\d|3[01])-(0\\d|1[012])-(\\d{4})
compile metodu - string + flag
Şöyle yaparız.
matcher metodu
Matcher döner. Girdi ile düzenli ifadeyi eşleştirir.Şöyle yaparız.
Pattern pattern =Pattern.compile("...", Pattern.CASE_INSENSITIVE);
asPredicate metodu
asPredicate metodu yazısına taşıdım
String line = "...";
Pattern pattern=Pattern.compile("...");
Matcher matcher=pattern
.matcher(line);
splitAsStream metodusplitAsStream metodu yazısına taşıdım
Diğer
1. Look Ahead ve Look Behind
Açıklaması şöyle.
1. Look Ahead ve Look Behind
Açıklaması şöyle.
(?<!\d) # negative lookbehind to assert previous char is not a digit
\d{2} # match exact 2 digits
: # match a colon
\d{2} # match exact 2 digits
(?!\d) # negative lookahead to assert next char is not a digit
Negative Lookahead
Belirtilen şey ile başlamayan anlamına gelir.
Örnek
Şöyle yaparız. Burada amaç sayının başındaki 0 rakamlarını silmek. İlk capture group "-" veya boş string olabilir. Daha sonra bir veya daha fazla 0 gelebilir. Sonra negative lookahead ile 0'lardan sonra hemen string'in bitmediğini garanti ederiz. Tüm -000 şeklindeki karakterler - ile yer değiştirir. Tüm 000 şeklindeki karakterler "" yani boş string ile yer değiştirir.
"00000050.43".replaceFirst("^(-?)0+(?!$)", "$1")
Örnek
Şöyle yaparız. Bu / karakterine göre ayırır, ancak / karakterinin satır başında olmaması gerekir.
String[] res = "/token1/token2/token3".split("(?!^)/");
System.out.println(res[0]); // => /token1