我知道这个话题在某种程度上已经被涵盖了,但是几天后我仍然无法找出从文本块中解析价格的最佳方法。
以下是一些示例: 这辆车售价 15,000 美元,升级费用为 200 美元 这些皮带是 500.00 美元,我要 50 美元的运费
我的方法是进行三个单独的正则表达式匹配:
- 查找缩写为 K 的价格
- 查找带有前缀的价格
- 查找带有后缀的价格
寻找带有千位缩写的美元
preg_match_all('/^[0-9,]+(\.[0-9]{2})?(k)+$/',
strtolower($description), $price_array1);
寻找带前缀的美元
preg_match_all('/^(\$|\$ |price|price |price is |price:|price: |us|us |usd|usd |asking|asking |wanting|wanting |want|want |sgd|euro|euro |£|£ |€|€ |gbp|gbp |cdn|cdn |)+[0-9,]+(\.[0-9]{2})?$/', strtolower($description), $price_array2);
寻找带后缀的美元
preg_match_all('/(\$[0-9,]+(\.[0-9]{2})?)( eur|eur| firm| obo| shipped| \$|\$| €|€| £|£| gbp|gbp| dollar| aud)+/', strtolower($description), $price_array3);
但实际上这些似乎都不起作用。我想我的正则表达式正确吗?但不知道为什么他们不匹配任何东西。我承认我对是否应该使用 ^ 和 $ 有点困惑,但我已经尝试过使用和不使用它,它似乎没有任何区别。任何帮助,将不胜感激。谢谢。