В этом уроке по регулярным выражениям Java мы научимся сопоставлять любые символы, являющиеся частью «расширенного греческого» блока Unicode или греческого алфавита.
В регулярных выражениях синтаксис '\p{}' используется для сопоставления символов на основе свойств Unicode.
- \p{InGreek}: Соответствует любому символу в греческом и коптском блоке Unicode.(Диапазон: от U+0370 до U+03FF)
- \p{InGreekExtended}: Соответствует любому символу в блоке греческого расширенного Unicode.(Диапазон: от U+1F00 до U+1FFF)
Регулярные выражения решения: \\p{InGreek} и \\p{InGreekExtended}
1. Найдите любой символ в греческом алфавите
Давайте рассмотрим программу, которая может сопоставить любой символ греческого алфавита в строке.
String content = "A math equation might be α + β = λ + γ";String regex = "\\p{InGreek}";Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);Matcher matcher = pattern.matcher(content);while(matcher.find()) {System.out.print("Start index: " + matcher.start());System.out.print(" End index: " + matcher.end() + " ");System.out.println(" : " + matcher.group());}
Вывод программы:
Start index: 25 End index: 26 : αStart index: 29 End index: 30 : βStart index: 33 End index: 34 : λStart index: 37 End index: 38 : γ
2. Найдите любой символ в блоке Unicode «Greek Extended»
Давайте рассмотрим пример программы, которая может сопоставить любой символ греческого алфавита в строке.
String content = "Let's learn some new greek extended characters : ᾲ , ᾨ etc.";String regex = "\\p{InGreekExtended}";Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);Matcher matcher = pattern.matcher(content);while(matcher.find()) {System.out.print("Start index: " + matcher.start());System.out.print(" End index: " + matcher.end() + " ");System.out.println(" : " + matcher.group());}
Вывод программы:
Start index: 49 End index: 50 : ᾲStart index: 53 End index: 54 : ᾨ
Ссылки:
- https://en.wikipedia.org/wiki/Греческий_алфавит
- https://www.alanwood.net/unicode/greek_extended.html