使用 php 删除跨度标签的正则表达式

Regex to remove span tags using php

以下很简单html我想删除所有跨度标签,只需要 0.65 值。请有人帮助我。

<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);

删除所有标签

而且您也可以使用以下方法仅删除跨度标签 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

hth

您可以使用 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>)#', '', $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);