如何在模式中定义可选部件?

时间:2017-06-21 09:08:56

标签: php regex

以下是my content

<div>something</div>
<div>something else <p>paragraph</p></div>

这是我的模式:

/<div>([^<]+).*?<\/div>/

如您所见,它只匹配div的文字内容。现在我想为p的模式添加一个可选部分。我的意思是,我想将p的值作为另一个捕获组(如果存在)。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用<div>([^<]+)(<p>(.*?)<\/p>)?<\/div>

regex demo

输入内容:

<div>something</div>
<div>something else <p>paragraph</p></div>

<强>输出

something
something else 
paragraph