使用preg_split()</span>使用<span>拆分字符串

时间:2014-02-23 22:56:37

标签: php regex string string-split

我有一种这种格式的刺痛。

<span class="amount">$25</span>–<span class="amount">$100</span>

我需要做的是将它分成两个字符串。字符串将保持相同的格式,但价格会发生变化。我尝试使用str_split(),但由于价格变化,我不能总是知道要分割字符串的字符数。

我想要得到的是这样的。

字符串1

<span class="amount">$25</span>–

String 2

<span class="amount">$100</span>

我发现最好的选择是使用preg_split(),但我对regex一无所知,所以我不确定如何格式化表达式。可能还有更好的方法来解决这个问题,我只是不知道。

有人可以帮我格式化正则表达式,或者让我知道更好的方法来分割该字符串。

修改

感谢@ rm-vanda帮助我弄清楚我不需要使用preg_split。我能够使用explode()拆分字符串。我遇到的问题是因为' - '编码很奇怪,因此无法正确返回。

2 个答案:

答案 0 :(得分:3)

将此问题转换为DOM可能更好:

$html = <<<HTML
<span class="amount">$25</span>–<span class="amount">$100</span>
HTML;

$doc = new DOMDocument;
$doc->loadHTML($html);

foreach ($doc->getElementsByTagName('span') as $span) {
    // do stuff with $span
    // e.g. this is how you would get the outer html
    echo $doc->saveXML($span);
}

答案 1 :(得分:1)

如果它总是有“ - ”那么这将是最简单的方法:

$span = explode("-", $spans); 

echo $span[0]; 

echo $span[1];