Регулярное выражение для определения гласной или согласной буквы в начале строки
1,00
р.
р.
Как составить такое регулярное выражение которое проверяет только первую букву в строке на то является она согласной или гласной? Тут нужно как-то регулярное выражение написать if (string.matches("[рег-ое выражение]")) { return true }
Ответ Должно быть достаточно такого: str.matches("^(?i:[aeiouy]).*"). Для кириллицы - str.matches("^(?ui:[аеёиоуыэюя]).*"). ^ обозначает начало строки (?i:...) - включает CASE_INSENSITIVE для этой группы, чтобы не перечислять повторно заглавные буквы. (?ui:...) Важно! Если вы работаете с юникодом, то вышеуказанный ключ не сработает. Нужно добавить UNICODE_CASE, т.е. ?ui. [aeiouy] - все гласные. Если нужно найти все согласные, то нельзя использовать [^aeiouy], т.к. в эту группу попадают вообще все символы юникода, кроме этих шести. Нужно точно так же перечислить согласные. .* - дальше сколько угодно (хоть ноль) любых символов, кроме конца строки. Демонстрация работы с разными строками: public class Main { public static void main(String[] args) { String[] strs = {"abcd efjk", "hello world", "a", "E", "d", "", " ", "юникод"} for (String str: strs) { boolean test = str.matches("^(?i:[aeiouy]).*") System.out.println(str + ": " + test) } } } Результат: abcd efjk: true hello world: false a: true E: true d: false : false : false юникод: false