我知道这个主题已经在某种程度上被覆盖了,但几天之后,我仍然很难找出从文本块中解析价格的最佳方法。PHP正则表达式帮助解析字符串价格
下面的是一些例子: 这辆车是$ 15,000,并且在升级200 $ 那些带是USD 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);
但实际上这些都不似乎是加工。我认为我的正则表达式是正确的?但不知道他们为什么不匹配任何东西。 我会承认我对我是否应该使用^和$有点困惑,但我已经尝试过,并且它似乎没有什么区别。 任何帮助,将不胜感激。谢谢。
''^意味着原始字符串的开始和'$'意味着原始字符串的结尾。如果将它们添加进去,当然你将无法在字符串中匹配一些标记。 – nhahtdh
请注意,我们在德国使用类似于:1.999,99€ – rekire