次の条件を満たす正規表現を作成できません。
- 接頭辞:“ di”と“ men”で始まらない
- 文字の並び:a-z
- サフィックス::で終わる •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"
ここでデモ: