不是以di和men开头的单词(前缀)

时间:2017-02-09 03:50:35

标签: php regex prefix suffix

我在创建符合以下条件的正则表达式时遇到问题:

  1. 前缀:不以“di”和“men”开头
  2. 字符序列:a-z
  3. 后缀:以:结尾:   •in,at,啊,iah,   •元音序列(a,e,i,o,u),   •然后“wi”,   •以i
  4. 结尾的辅音序列

    这是我创建的正则表达式,但它似乎不起作用。请帮帮我。

    $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 个答案:

答案 0 :(得分: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'

在这里演示:

Regex 101