Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不以di和men开头的单词(前缀)_Php_Regex_Prefix_Suffix - Fatal编程技术网

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

Php 不以di和men开头的单词(前缀),php,regex,prefix,suffix,Php,Regex,Prefix,Suffix,我在创建符合以下条件的正则表达式时遇到问题: 前缀:不以“di”和“men”开头 字符序列:a-z 后缀:以: •在,在,啊,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)((?!(a\e\i\o\u)i$/",$value,$match); 例如,输出应该

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

  • 前缀:不以“di”和“men”开头
  • 字符序列:a-z
  • 后缀:以: •在,在,啊,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)((?!(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'
    
    此处演示:

    ^((?!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'
    

    我已经试过了,但没用。。。输出应该是“lain”,而不是“dian”。您从未告诉我们您正在尝试捕获/替换任何内容。我已经按照你的要求回答了。如果您需要捕获/替换,请更新您的问题。@shequin我再次更新了我的答案,现在它与您描述的行为相匹配。