Слово не начинается с ди и мужчины (префикс)

У меня проблема с созданием регулярного выражения, которое удовлетворяет следующим критериям:

  1. префикс: не начинается с «ди» и «мужчины»
  2. Последовательности персонажа: а-я
  3. суффикс: конец с:
    • в, ах, ага,
    • последовательности гласных (a, e, i, o, u),
    • затем «ш»,
    • последовательности согласных, заканчивающиеся на i

Это регулярное выражение, которое я создал, но, похоже, оно не работает. Пожалуйста, помогите мне.

$count = preg_match_all("^(^\bdi|^\bmen]\w*(in|at|ah|iah)((a|e|i|o|u)(wi)((?!(a\e\i\o\u)i$/",$value,$match);

Например, вывод должен содержать слово «lain», а не «dian».

0

Решение

Попробуйте следующее регулярное выражение:

^((?!di|men)[a-z]+(in|at|ah|iah)[aeiou]*(?:wi)?[a-z]*i?)$

Объяснение:

^((?!di|men)    assert that string does not start with 'di' or 'men'
[a-z]+          one or more sequence of characters a-z
(in|at|ah|iah)  ends with on these patterns
[aeiou]*        followed by optional sequence of vowels a,e,i,o,u
wi              followed by optional 'wi'
[a-z]*          optional sequence of characters a-z
i?)$            optional 'i'

Демо здесь:

0

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

Других решений пока нет …

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