Символ шляпки внутри наборов в Java
Как вы знаете, шляпка внутри [ ]
делает отрицание, будучи написанной в
начале скобок. Значит, она является
спецсимволом внутри этих скобок. Чтобы
получить шляпку как символ, нужно или
заэкранировать ее, или убрать с первого
места.
В следующем примере шаблон поиска такой:
первый символ - это все кроме 'd',
потом две буквы 'x':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "axx bxx ^xx dxx";
Pattern pattern = Pattern.compile("[^d]xx");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
В результате в переменную запишется следующее:
"! ! ! dxx"
А теперь шаблон поиска такой: первый
символ - это 'd' или '^',
потом две буквы 'x':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "axx bxx ^xx dxx";
Pattern pattern = Pattern.compile("[d^]xx");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
В результате в переменную запишется следующее:
"axx bxx ! !"
Можно не убирать шляпку с первого места, а просто заэкранировать ее с использованием обратного слеша, и она станет обозначать саму себя:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "axx bxx ^xx dxx";
Pattern pattern = Pattern.compile("[\\^d]xx");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
В результате в переменную запишется следующее:
"axx bxx ! !"
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "^xx axx ^zz bkk @ss";
}
}
Напишите регулярку, которая найдет строки по шаблону: шляпка или собака, а затем две латинских буквы.
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "^xx axx ^zz bkk @ss";
}
}
Напишите регулярку, которая найдет строки по шаблону: НЕ шляпка и не собака, а затем две латинских буквы.
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "^xx axx ^zz bkk";
}
}
Напишите регулярку, которая найдет строки по шаблону: не шляпка и не пробел, а затем две латинских буквы.