最近,我不得不从Php中的给定HTML字符串中提取所有img标签。经过一段时间的搜索,我可以使用以下语句解决问题:
preg_match_all('/<img(.*?)\/>/s', $content, $images);
尽管我对Php中的正则表达式有一个粗略的线索,但我无法弄清楚为什么(。*?)可以用作某些字符串(在本例中为'img'和'/>')之间的占位符。
那么,谁能给我一个探针探测器对正则表达式(。*?)的解释?
.
匹配任何字符。*
告诉正则表达式引擎匹配任意数量的那些字符。?
延迟量词在这里是指“使匹配尽可能小”。(有关更精确的描述,请参见此出色的答案。)
实际上,/<img(.*?)\/>/
是指“从匹配开始<img
,然后继续匹配任何字符,直到/>
找到第一个字符”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句