我需要在HTML页面中找到一些字符串。所以该页面包含这个片段:
<div class="member">
<span>
<strong>Mr.</strong>
</span>
<span>
<strong>Name</strong>
</span>
<span>
<strong>Surname</strong>
</span>
</div>
这不是cource页面的完整代码。我只需要使用正则表达式提取字符串Mr. Name Surname
。
因此,如果我使用<strong>[\w.]*</strong>
,它会找到:
[0] : <strong>Mr.</strong>
[1] : <strong>Name</strong>
[2] : <strong>Surname</strong>
以下是3个问题。
1)结果包含带标签的字符串,我需要从结果中排除标签。
2)正则表达式可以在页面上找到所有<strong>
条目,而不仅仅是在这个div中。
3)我应该像这样Mr. Name Surname
连接这些字符串。是否可以只使用正则表达式?
如何解决我的表情?
答案 0 :(得分:0)
我找到了解决方案。 首先,我得到这个div的全部内容:
/(?<=<div\sclass\=\"member\">)([\s\S]*)(?=<\/div>)/gmi
所以,现在我有:
<span>
<strong>Mr.</strong>
</span>
<span>
<strong>Name</strong>
</span>
<span>
<strong>Surname</strong>
</span>
然后我只删除所有标签,多余空格和换行符:
$out0 = trim(preg_replace('/\s+/', ' ', strip_tags($inputstr)));
其中$inputstr
是我的div内容。
这种方式并不普遍,但它解决了我的问题。