Я знаю, что эта тема была в некоторой степени покрыта, но через несколько дней мне все еще трудно понять, как лучше разобрать цену из блока текста.PHP Regex Help for Parsing Цена от строки
Вот некоторые примеры: Этот автомобиль стоит $ 15k и имеет $ 200 в модернизации Эти ремни 500,00 USD и я прошу 50 за доставку
Мой подход был сделать три отдельные 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);
Но на самом деле ни один из них не кажется, за работой. Я думаю, что у меня правильное Regex? Но не знаю, почему они ничего не подходят. Допустим, я немного смущен тем, должен ли я использовать^и $, но я пробовал его с и без, и это, похоже, не имеет значения. Любая помощь будет оценена по достоинству. Благодарю.
''^означает начало исходной строки и '' $ означает конец исходной строки. Если вы их добавите, вы, конечно, не сможете сопоставить только какой-то токен внутри строки. – nhahtdh
Обратите внимание, что в Германии мы используем что-то вроде: 1.999,99 € – rekire