首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP从字符串中提取价格

PHP从字符串中提取价格
EN

Stack Overflow用户
提问于 2014-04-16 18:19:25
回答 3查看 2.6K关注 0票数 0

我有一个数组,里面有字符串。每个字符串在组成上是不同的,但每个字符串都有一个价格。

下面是一个示例字符串。

10/22 I 22 10战术塔罗灰-299.99美元发运

我试图从这个字符串中删除价格并创建这个字符串。

"10/22 I 22 10战术塔罗灰船“

我尝试过regex函数,甚至试图想出一个自定义函数,但我就是搞不清楚。

所有的帮助都非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-16 18:26:06

我用了这句话

代码语言:javascript
复制
[$]\d+[\d,.]*\s*

匹配一个美元符号([$]),然后是至少一个数字(\d+),然后是任何额外的数字/小数/逗号([\d,.]*),最后是任何额外的空格。

我把十进制/逗号解析放在了空中,因为有些国家的格式如:$1.999,99

在PHP中,使用preg_replace()

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2014-04-16 18:23:11

代码语言:javascript
复制
preg_replace('/\$\d+\.\d{2}\s*/', '', $string);

这将删除一个美元符号,后面是数字,后面是小数点,另外两个数字和可选的空格。

如果你用逗号显示价格,或者美分是可选的,你可能需要调整它。

票数 6
EN

Stack Overflow用户

发布于 2014-04-16 18:30:06

如果您确定订单(并不是非常推荐的),您可以尝试引爆字符串,并验证这样的字符串块以"$“开头。

代码语言:javascript
复制
$str = "xx xxx xx xx $1235.00";
$str = explode($str," ");
$num = ($str[4][0] == "$") ? str_replace("$","", $str[4]) : 0.00;

我还没有测试过,但这应该能起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23117188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档