一、贪婪与非贪婪

什么叫贪婪,比如说要从字符串中<td>面包一</td><td>面包二</td>吃面包,本来你只可以吃面包一,可是你贪心,于是就把第一个<td>到最后一个</td>里面的两个面包取出来了,你想多吃点,非贪婪也就是你不贪吃了,就只吃面包一。

我们来看看正则里面是怎么贪婪的

<"htmlcode">
<"" 号,则可以使匹配次数不定的表达式尽可能少的匹配。

在PHP中还可以通过修饰符来实现,

<"(","("

"("htmlcode">

<"(",所在缝隙的右侧,必须不能匹配 xxxxx 这部分表达式

<"htmlcode">
<"(","("

"(" :所在缝隙的 "左侧”能够匹配xxxxx部分。

<"(":所在缝隙的“左侧”不能匹配xxxx部分。

<?php
$str = '我1234567890123456';
preg_match('/(?<!我)\d+/',$str,$res);
print_r($res);

结果:
Array
(
    [0] => 234567890123456
)

 
三、preg和ereg的区别


PHP同时使用两套正则表达式规则,一套是由电气和电子工程师协会(IEEE)制定的POSIX Extended 1003.2兼容正则(事实上PHP对此标准的支持并不完善),另一套来自PCRE(Perl Compatible Regular Expression)库提供PERL兼容正则。 PHP5.3开始POSIX被删除了。

preg_match 比 ereg效率高。

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com