我有以下表达式:
"MSRP | <span style='text-decoration: line-through;'>$74,660</span><br /> Buy | $67,092
我需要
MSRP $74,600 $67,092
我似乎无法找到正则表达式来包含&#39; $&#39;匹配组中的符号。这就是我目前正在做的事情:
MSRP | <[^>]+>\$([^>]+)<[^>]+> *<[^>]+> *Buy | $([^>]+)\/i
这个表达有什么问题,为什么不包括&#39; $&#39;符号?
答案 0 :(得分:1)
您需要转义$
和|
,并将\$
放在括号内以匹配组:
(MSRP) \| <[^>]+>(\$[^>]+)<[^>]+> *<[^>]+> *Buy \| (\$[^>]+)
答案 1 :(得分:1)
如果您想将$符号与结果中的数字一起使用,则需要将其放入括号中:
这是PHP的一个工作示例:
$str = "MSRP | <span style='text-decoration: line-through;'>$74,660</span><br /> Buy | $67,092";
preg_match('/MSRP \| <[^>]+>(\$[^>]+)<[^>]+> *<[^>]+> *Buy \| (\$[^>]+)/i', $str, $matches);
我得到了这样的结果:
1 => '$74,660', 2 => '$67,092'