Слово не начинается с ди и мужчины (префикс)
У меня проблема с созданием регулярного выражения, которое удовлетворяет следующим критериям:
- префикс: не начинается с "ди" и "мужчины"
- Последовательности персонажа: az
- суффикс: заканчивается на: • в, в, ах, да, • последовательности гласных (a, e, i, o, u), • затем "wi", • последовательности согласных, заканчивающиеся на 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".
1 ответ
Решение
Попробуйте следующее регулярное выражение:
^((?!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'
Демо здесь: