我有一些字符串:
$string1 = '<p><strong>Extract me</strong></p><p>Leave me</p>';
$string2 = '<strong>Extract me</strong>Leave me';
$string3 = '<span style="font-weight: bold">Extract me</span><br /><span>Leave me</span>';
让我们检查 $ string3 :
字符串的第一个标记是 <span>
因此,需要提取第一个<span>
和第一个</span>
之间的文字。
提取应表示:将其从 $ stringX 中删除并保存到 $ extractedX
我该怎么做?
答案 0 :(得分:2)
[^>]*?(?=<\/.*>)
你应该做的是使用一个断言。 [^>]*?
搜索任何不是>
的字符。这应该没问题,因为如果您需要使用>
作为文本,则需要将其转义为>
。然后它搜索<\/.*>
表示的第一个结束标记。它周围的(?=)
告诉正则表达式引擎不要在匹配中包含它。
答案 1 :(得分:1)
您必须首先搜索,然后在此处发布您的问题。
这里的任何方式都是你的ans的相关问题
Click here to get the releted question
您可以使用preg replace
完成此操作答案 2 :(得分:1)
您可以使用PHP的preg_match和正则表达式。
此在线编辑器对正则表达式非常有用:
你需要这样的东西才能开始:
<strong>(.*)</strong>|<span.+font-weight:\ ?bold.+>(.*)</span>
如果您需要进行更高级的解析,可以查看在PHP中解析DOM,例如使用DOMDocument LoadHtml
答案 3 :(得分:0)
如果您只想要第一次出现,则可以strip_tags使用preg_match。