$regex = '/(?<=(total:))(\$\d+\.\d+)/';
$search = '$1.25 cart total: $24.99 $55.50';
preg_match($regex, $search, $price);
我想从上面的字符串中提取'$ 24.99'。php preg_match积极lookahead不按预期方式工作
当我print_r $ price数组时,它是空白的。根据这个工具:http://regexr.com?2vfm9我的正则表达式应该正常工作。当我使用正则表达式的“(\ $ \ d +。\ d +)”部分运行代码时,数组返回所有价格......所以我知道该部分正在工作。
我是否正确执行了正向预览?任何其他想法?
更新: 我想我可能已经找到了问题:
,我分析有文字“& NBSP;”冒号后。当我将自己的原始文本显示给自己时,它并没有显示出来,而是干扰了正则表达式。我会更新以确认。
我已经试过你代码和它“工作”! `print_r($ price);``给我`Array([0] => $ 24.99 [1] => total:[2] => $ 24.99)` – 2011-12-14 09:54:35
`$ price`不为空,http://codepad.viper -7.com/YQxEDN – xdazz 2011-12-14 09:55:35
对我来说,在我的工作站本地工作正常。我并不真的知道这有什么问题。但是,我注意到另一个主机,我用来测试一些PHP,并不是我的所有正则表达式都可以工作。所以,试着找出是否有正则表达式的选项在PHP – 2011-12-14 09:56:32