このトピックはある程度カバーされていることは知っていますが、数日経った今でも、テキスト ブロックから価格を解析する最善の方法を見つけるのに苦労しています。
以下にいくつかの例を示します: この車は 15,000 ドルで、アップグレード費用は 200 ドルです これらのベルトは 500.00 ドルで、送料は 50 ドルでお願いしています
私のアプローチは、3 つの別々の Regex マッチを行うことでした。
- 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);
しかし、実際にはこれらのどれも機能していないようです。正規表現が正しいと思いますか? しかし、なぜそれらが何にも一致しないのかはわかりません。^ と $ を使用する必要があるかどうかについて少し混乱していることは認めますが、使用する場合と使用しない場合で試してみましたが、違いはないようです。どんな助けでも大歓迎です。ありがとう。