我有一个字符串:
Product, Q.ty: 1, Price: 120.00
我想选择第一个逗号之后的所有内容,直到最后两位小数 (.00) - 或者,换句话说,选择Product
,尽管它是可变的;不可变的是, Q.t
,众所周知,字符串中的最后两个字符将是两个数字,前面有一个点.
- 但是只有最后一个总是0
,前面的一个可以是任何东西0-9
,但总是一个数字。
我用它来匹配字符串:
preg_replace('/' . preg_quote(', Q.t') . '.*?' . preg_quote('.00') . '/', '', $data );
问题是,当最后两位数字不是 00 而是 50、40、30 等其他数字时,它会失败。如果我对单个数字“0”使用相同的正则表达式,它也不会工作,因为它会捕获字符串中的第一个 0 就像我之前的示例一样,并将省略剩余的 0。
如何调整此表达式以捕获前面有“。”的一组数字 点?
*进一步说明:此 preg_replace 在 foreach 循环内;有些数据与我试图传递的模式完全不匹配;没关系,所以在这些情况下,我可以按原样打印字符串;但是对于 foreach 中存在匹配项的情况,我想用任何内容替换部分字符串*
谢谢