Группы символов внутри наборов в Java
Группы символов \d, \D,
\w, \W, \s, \S
внутри [] будут обозначать именно
группы, то есть по-прежнему будут командами.
В данном примере шаблон поиска выглядит
так: между иксами любая цифра, либо
буква от 'a' до 'f':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "xax xbx x1x x2x xhx x@x";
Pattern pattern = Pattern.compile("x[\\da-f]x");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"! ! ! ! xhx x@x"
В данном примере шаблон поиска выглядит
так: буква 'x', затем не цифра,
не точка, и не маленькая латинская буква,
затем буква 'z':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "xaz x1z xAz x.z x@z";
Pattern pattern = Pattern.compile("x[^\\d.a-z]z");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"xaz x1z ! x.z !"
Напишите регулярку, которая найдет строки
по шаблону: цифра или точка от 1
и более раз.
Напишите регулярку, которая найдет строки
по шаблону: не цифра и не буква от
'a' до 'g' от 3 до
7 раз.