Регулярное выражение для 8-10 буквенных слов

Мне нужно регулярное выражение, которое соответствует 8-буквенным словам, оканчивающимся на «ion», или 10-буквенным словам, оканчивающимся на «able».

Вот что я придумал, но почему-то http://regex101.com говорит, что нет совпадений, когда я пытаюсь сопоставить строку.

Моя идея заключается в следующем:

([a-z]{4}^\btion\b|[a-z]{6}^\bable\b)

Ссылка на regex101 — Вот

2

Решение

Попробуй это:

\b([a-z]{4}tion|[a-z]{6}able)\b

демонстрация

Ты используешь ^\b между переменной секции (например, [a-z]{4}) и постоянный постфикс (например, tion) и это разрывает матч. ^ означает «начало строки (или строки)» и \b означает «граница слова». Использование его вместе не имеет большого смысла, так как начало строки всегда является границей слова.

3

Другие решения

\b соответствует границе слова. Это должно быть только в начале и конце слова, а не перед суффиксом. Вы можете взять его за скобки группировки, так как все альтернативы должны совпадать на границах слов.

\b([a-z]{4}tion|[a-z]{6}able)\b

Вам не нужно ^ вообще, это соответствует началу строки.

4

По вопросам рекламы [email protected]