Рассмотрим следующий код:
import java.util.regex.*;
class Test {
public static void main(String[] args) {
String str1 = "xxzz";
String str2 = "xyz";
String str3 = "yzz";
Pattern pattern = Pattern.compile("(xx)*y?z{1,}");
Matcher matcher = pattern.matcher(str1);
System.out.println(matcher.matches());
System.out.println(pattern.matcher(str2).matches());
System.out.println(
Pattern.compile("(xx)*y?z{1,}").
matcher(str3).matches());
}
}
Этот код производит следующий вывод:
true
false
true
Но если я удалю {1,}
, он выдаст следующий результат:
false
false
false
Я не могу понять, как используется {1,}
и как это работает, пожалуйста, поделитесь своими предложениями и помощью.
1 ответ
Это предложение известно как квантификатор.
Он указывает конкретное число, списки чисел или диапазон (до бесконечности). Число указывает точное количество вхождений. Запятая используется для обозначения нескольких (между числами) или диапазона до бесконечности (если за ними не следует число.
Это более поздний случай: в предложении будет проверяться одно или несколько вхождений предыдущей группы.
Однако вы можете заменить {1,}
на +
в том же месте, чтобы добиться того же эффекта с меньшим количеством символов.
Я использую regexr.com в качестве ресурса для изучения и изучения регулярных выражений, это замечательно. Кроме того, вот очень подробная страница Википедии, которая описывает регулярные выражения в разных версиях, и вот конкретно о квантификаторах на странице Oracle.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.