Я не эксперт в Regex, возможно, это очевидная причина, но я не могу найти ответ на этот вопрос.
Я использую нотацию POSIX для сопоставления строки (n
) с использованием Regex в Java без учета регистра.Дано:
Pattern pattern = Pattern.compile("\\p{Upper}", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("n");
Почему следующий код приводит к false
?
boolean find = matcher.find();
В документации Pattern
я нашел следующее (подчеркивает мое):
\ p {Upper} Буквенный буквенный символ: [AZ]
Проверено на соответствиеRegex [A-Z]
, следующие результаты в true
:
Pattern pattern = Pattern.compile("[A-Z]", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("n");
boolean find = matcher.find();
В чем разница?