贪婪模式

限定符

说明

{n}

表达式固定重复n次,比如:"\w{2}" 相当于 "\w\w"

{m, n}

表达式尽可能重复n次,至少重复m次:"ba{1,3}"可以匹配 "ba"或"baa"或"baaa"

{m, }

表达式尽可能的多匹配,至少重复m次:"\w\d{2,}"可以匹配 "a12","x456"...

?

表达式尽可能匹配1次,也可以不匹配,相当于 {0, 1}

+

表达式尽可能的多匹配,至少匹配1次,相当于 {1, }

*

表达式尽可能的多匹配,最少可以不匹配,相当于 {0, }

贪婪模式

懒惰限定符 说明
*? 重复任意次,但尽可能少重复
+? 重复 1 次或更多次,但尽可能少重复
?? 重复 0 次或 1 次,但尽可能少重复
{n,} 重复 n 次以上,但尽可能少重复
{n,m} 重复 n 到 m 次,但尽可能少重复

例子:

1:*?

$str = 'aaaaaaaa';
preg_match('/a*/', $str,$ary1);
preg_match('/a*?/',$str,$ary2);
echo '<xmp>';print_r($ary1);echo '</xmp>';
echo '<xmp>';print_r($ary2);echo '</xmp>';

结果:

Array( [0] => aaaaaaaa)

Array( [0] => )

 

$str = 'aaaaaaabaaababa';
preg_match('/a{1,10}/',$str,$ary1);
preg_match('/a{1,10}?/',$str,$ary2);

echo '<xmp>';print_r($ary1);echo '</xmp>';
echo '<xmp>';print_r($ary2);echo '</xmp>';