正则表达式未检测到所有事件

时间:2014-07-19 11:23:59

标签: php regex

以下php代码仅检测某些模式

$re = "/([aeiou]+[bcdfghjklmnpqrstvwxyz]+[aeiou]+)/"; 
$str = "miniature"; 

preg_match_all($re, $str, $matches);
print_r($matches);

这显示以下结果:'inia'和'ure'

(Array ( [0] => Array ( [0] => inia [1] => ure ) [1] => Array ( [0] => inia [1] => ure ) ))

为什么不显示'iatu'(任意数量的元音后跟任意数量的辅音,后跟任意数量的元音)

我如何写正则表达式给我三个结果?
感谢

2 个答案:

答案 0 :(得分:3)

如果您希望捕获iatu,请使用正向前瞻

(?=([aeiou]+[bcdfghjklmnpqrstvwxyz]+[aeiou]+))

DEMO

答案 1 :(得分:1)

  

为什么不显示' iatu'

因为之前的匹配inia

已经捕获了该内容

返回两场比赛。

inia
ure

DEMO