字不开始与迪和男人(前缀)
问题描述:
我有创造适合以下条件的正则表达式的一个问题:字不开始与迪和男人(前缀)
- 前缀:未与“地”和“男人”
- 的序列开始字符:AZ
- 后缀:结束与: •所示,在啊,IAH, •元音的序列(A,E,I,O,U), •然后“无线”, •辅音序列以我结尾
这是我创建的正则表达式,但它似乎不起作用。请帮帮我。
$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”。
答
试试下面的正则表达式:
^((?!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'
演示在这里:
我做过尝试,但它不工作..输出t应该是“lain”,而不是“dian” – shequin
你从未告诉我们你正试图捕获/替换任何东西。我已根据您的要求作出回应。如果你需要捕获/替换,然后更新你的问题。 –
对不起,我有更新的问题。 – shequin