Начало и конец строки в регулярках Java
Существуют специальные символы, которые
обозначают начало '^' или конец
строки '$'. Посмотрим их
работу на примерах.
В данном примере шаблон поиска такой:
заменить 'aaa' на '!'
только, если оно стоит в начале строки:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "aaa aaa aaa";
Pattern pattern = Pattern.compile("^aaa");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"! aaa aaa"
В данном примере шаблон поиска такой:
заменить 'aaa' на '!'
только, если оно стоит в конце строки:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "aaa aaa aaa";
Pattern pattern = Pattern.compile("aaa$");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"aaa aaa !"
Когда в начале регулярки стоит '^',
а в конце - '$', то таким образом
проверяется вся строка целиком на соответствие
регулярке.
В следующем примере шаблон поиска такой:
буква 'a' повторяется один или
более раз, заменить всю строку на '!'
только она состоит из одних букв 'a':
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "aaa";
Pattern pattern = Pattern.compile("a+$");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!");
System.out.println(res);
}
}
Результат выполнения кода:
"!"
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "abc def xyz";
}
}
Напишите регулярку, которая найдет первую подстроку из букв.
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "abc def xyz";
}
}
Напишите регулярку, которая найдет последнюю подстроку из букв.