Heim  >  Artikel  >  Backend-Entwicklung  >  preg_match_all 正则表达式贪婪与非贪婪模式

preg_match_all 正则表达式贪婪与非贪婪模式

巴扎黑
巴扎黑Original
2016-11-07 16:39:111909Durchsuche

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。

非贪婪匹配:就是匹配到结果就好,就少的匹配字符。

 

那么,我们实用一下

使用php 的行数preg_match_all

以下我们要将字符串content 中的两个链接取出来

 

 

Php代码  

1. 

2. $content='

这显然不是我们想要的。

那么,我么么只要把$play_pattern加多一个字母,就能匹配到我们所需要的信息

Php代码

1. $play_pattern = '/

结果就是

Array
(
[0] => Array
(
[0] => BD
[1] => DVD
)


[1] => Array
(
[0] => /videos/68759vod-play-id-68759-sid-0-pid-1.html
[1] => /videos/68759vod-play-id-68759-sid-0-pid-0.html
)


[2] => Array
(
[0] => BD
[1] => DVD
)


)

 

贪婪模式和非贪婪模式差别就是那么大。

在正则html上的列表的时候,经常就会出现这样的错误。使用preg_match_all正则匹配到了整个字符串,但是子串的匹配被忽略了。导致结果错误。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn