/ / wordがdiとmenで始まらない(プレフィックス) - php、regex、prefix、suffix

diとmenで始まらない単語(接頭辞) - php、regex、prefix、suffix

次の条件を満たす正規表現を作成できません。

  1. 接頭辞:“ di”と“ men”で始まらない
  2. 文字の並び:a-z
  3. サフィックス::で終わる •in、at、ah、iah、 母音のシーケンス(a、e、i、o、u)、 •そして「wi」、 •iで終わる子音のシーケンス

これは私が作成した正規表現ですが、うまくいかないようです。助けてください。

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

たとえば、出力には「dian」ではなく「lain」という単語を取り込む必要があります。

回答:

回答№1は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"

ここでデモ: