Инвертирование наборов символов в регулярках
. Если, к примеру, команда [ab]
ищет букву 'a' или 'b', то
команда [^ab] будет искать все
символы, кроме 'a' и 'b'.
В данном примере шаблон поиска выглядит
так: буква 'x', затем НЕ буква
'a', не 'b' и не 'c',
потом буква 'z':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "xaz xbz xcz xez";
Pattern pattern = Pattern.compile("x[^abc]z");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"xax xbx xcx !"
В данном примере шаблон поиска выглядит
так: буква 'x', затем НЕ маленькая
латинская буква, потом буква 'z':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "xaz xbz x1z xCz";
Pattern pattern = Pattern.compile("x[^a-z]z");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"xaz xbz ! !"
Напишите регулярку, которая найдет строки
по шаблону: цифра 1, затем символ
не 'e' и не 'x', цифра
2.
Напишите регулярку, которая найдет строки
по шаблону: буква 'x', затем НЕ
цифра от 2 до 7, буква
'z'.
Напишите регулярку, которая найдет строки
по шаблону: буква 'x', затем НЕ
большая латинская буква от 1 и более
раз, буква 'z'.
Напишите регулярку, которая найдет строки
по шаблону: буква 'x', затем НЕ
большая или маленькая латинская буква и
не цифра от 1 до 5 от 1
и более раз, буква 'z'.