我有一种这种格式的刺痛。
<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()拆分字符串。我遇到的问题是因为' - '编码很奇怪,因此无法正确返回。
答案 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];