Используя regex вытащить слова из 4 букв, в которых есть буква a или o

Нужно из строки, String s = "fkjvl dfof dsag aaafg". Выделить только "dfof" и "dsag". Первое, что пришло в голову, использовать regex. Придумал, что-то вроде такого, но работает на словах, в которых более 4 символов, как исправить? (\b(\w*[ao]+\w*)\b)


Ответы (1 шт):

Автор решения: ipatev_nn
(?=\b\w{4}\b)\w*[oa]\w*

Можно использовать позитивный просмотр вперед, выделив любые 4 буквы или цифры или символ нижнего подчеркивания, так как \w эквивалентно [a-zA-Z0-9_]. После провести валидацию всех найденных четырех-символьных слов на наличие букв o или a В случае, если это обязательно должны быть только буквы, то \w нужно заменить на [a-zA-Z]

Пример: regex101.com

→ Ссылка