我在Stackoverflow的许多线程中搜索,但我没有找到任何与我的情况相关的内容。
原文如下:
<span class="red"><span>70</span><span style="display:none">1</span><span>,89</span> € TTC<br /></span>
我想用正则表达式提取70,89
所以我试了:
<span class="red"><span>([0-9]+)(<'/span><span style="display:none">1<'/span><span>)(,[0-9]+)<'/span>
返回一个包含3组的数组(PHP中包含preg_match_all):
1/702/
</span><span style="display:none">1</span><span>
3/89
我想排除组2并合并组1 &3 .
所以我也试了:
<span class="red"><span>([0-9]+)(?:<'/span><span style="display:none">1<'/span><span>)(,[0-9]+)<'/span>
但是它返回:
- 70
- 89
如何合并这两个组?
非常感谢你的回答,我将疯狂地搜索这个正则表达式!:)
祝您愉快!
只匹配用普通<span>
:
$str = '<span class="red"><span>70</span><span style="display:none">1</span><span>,89</span> € TTC<br /></span>';
if (preg_match_all('#<span>([,'d]+)</span>#', $str, $matches)) {
echo join('', $matches[1]);
}
// output: 70,89