我有一个数组,里面有字符串。每个字符串在组成上是不同的,但每个字符串都有一个价格。
下面是一个示例字符串。
10/22 I 22 10战术塔罗灰-299.99美元发运
我试图从这个字符串中删除价格并创建这个字符串。
"10/22 I 22 10战术塔罗灰船“
我尝试过regex函数,甚至试图想出一个自定义函数,但我就是搞不清楚。
所有的帮助都非常感谢。
发布于 2014-04-16 18:26:06
我用了这句话
[$]\d+[\d,.]*\s*匹配一个美元符号([$]),然后是至少一个数字(\d+),然后是任何额外的数字/小数/逗号([\d,.]*),最后是任何额外的空格。
我把十进制/逗号解析放在了空中,因为有些国家的格式如:$1.999,99。
在PHP中,使用preg_replace()
echo preg_replace('/[$]\d+[\d,.]*\s*/', '', '10/22 I-TAC 22LR TACTICAL TALO GREY - $299.99 shipped');
// 10/22 I-TAC 22LR TACTICAL TALO GREY - shipped发布于 2014-04-16 18:23:11
preg_replace('/\$\d+\.\d{2}\s*/', '', $string);这将删除一个美元符号,后面是数字,后面是小数点,另外两个数字和可选的空格。
如果你用逗号显示价格,或者美分是可选的,你可能需要调整它。
发布于 2014-04-16 18:30:06
如果您确定订单(并不是非常推荐的),您可以尝试引爆字符串,并验证这样的字符串块以"$“开头。
$str = "xx xxx xx xx $1235.00";
$str = explode($str," ");
$num = ($str[4][0] == "$") ? str_replace("$","", $str[4]) : 0.00;我还没有测试过,但这应该能起作用。
https://stackoverflow.com/questions/23117188
复制相似问题