PHP正则表达式:匹配最接近的一个

Tha*_*ung 1 php regex html-parsing

我有这样的字符串

<div><span style="">toto</span> some character <span>toto2</span></div>
Run Code Online (Sandbox Code Playgroud)

我的正则表达式:

/(<span .*>)(.*)(<\/span>)/
Run Code Online (Sandbox Code Playgroud)

我使用preg_match并返回整个字符串

<span style="">toto</span> some character <span>toto2</span>
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

<span style="">toto</span>
and
<span>toto2</span>
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能实现这一目标?谢谢.

dee*_*hao 6

这个怎么样:

/(<span[^>]*>)(.*?)(<\/span>)/
Run Code Online (Sandbox Code Playgroud)

PHP preg_match重复检查这里的文档:

默认情况下,量词是"贪婪的",也就是说,它们尽可能匹配

但是,如果量词后跟一个问号,那么它就变得懒惰,而是匹配可能的最小次数