我知道這個主題已經在某種程度上被覆蓋了,但幾天之後,我仍然很難找出從文本塊中解析價格的最佳方法。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