正则表达式使用php删除span标签
问题描述:
以下是简单的html我想删除所有span标签,只是想要0.65的值。请有人帮我解决这个问题。正则表达式使用php删除span标签
<span class="smw smw-inline smw-basic smw-ct-default smw-visible" data-symbol="GSD.V" data-type="inline" data-refresh-frequency="5" data-source="live">
<span class="smw-market-data-field smw-field-l1" data-field="l1">0.65</span>
</span>
答
您可以删除使用preg_replace('/<[^>]*>/', '', $content);
所有标签,你也可以删除使用这只span标签preg_replace('/<span[^>]+\>/i', '', $content);
:
<?php
$content = '<div><span class="smw smw-inline smw-basic smw-ct-default smw-visible" data-symbol="GSD.V" data-type="inline" data-refresh-frequency="5" data-source="live">
<span class="smw-market-data-field smw-field-l1" data-field="l1">0.65</span>
</span></div>';
echo $string = preg_replace('/<[^>]*>/', '', $content);
echo $new_string = preg_replace('/<span[^>]+\>/i', '', $content);
?>
答
我假设PHP和Perl此非常相似。 ...
s{\</?span[^>]*/?>}{}gism
个心连心
答
您可以preg_replace
和正则表达式做到这一点:
<?php
$html = '<span class="smw smw-inline smw-basic smw-ct-default smw-visible" data-symbol="GSD.V" data-type="inline" data-refresh-frequency="5" data-source="live">
<span class="smw-market-data-field smw-field-l1" data-field="l1">0.65</span>
</span>';
$without_span = $html;
$without_span = preg_replace('#\n\r#', '', $without_span);
$without_span = preg_replace('#\n#', '', $without_span);
while(preg_match_all('#(<span.*?>)(.*?)(</span>)#', $without_span)) {
$without_span = preg_replace('#(<span.*?>)(.*?)(</span>)#', '$2', $without_span);
}
print_r($without_span);
答
请尝试以下代码这一点。
$string = '<span class="smw smw-inline smw-basic smw-ct-default smw-visible" data-symbol="GSD.V" data-type="inline" data-refresh-frequency="5" data-source="live">
<span class="smw-market-data-field smw-field-l1" data-field="l1">0.65</span>
</span>';
echo strip_tags($string);
使用DOM解析器。 – anubhava
你能为我写下代码 –
你可以使用strip_tags()。 http://php.net/manual/en/function.strip-tags.php – Fetrarij