Какое регулярное выражение я могу использовать для получения значений места (строки) и суммы (целого числа) из строки? - PullRequest
0 голосов
/ 06 декабря 2011

Я хочу получить место (строку) и сумму (число с плавающей точкой) из строки, используя регулярное выражение в PHP.

Целевая строка будет отформатирована так:

7 Одиннадцать Мэнли Вест 10.00

Место представляет собой строку символов a-z, A-Z, 0-9 и дефиса.

Сумма указана в денежном формате - 1011 * 10,40 - 10 долларов и 40 центов. Сумма также может быть отрицательной и не сохранять ноль ( 4.30 - 4 долларов и 30 центов).

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Если вы можете гарантировать , что в конце всегда будет цена, которая будет соответствовать вашей строке:

preg_match(/^(.*)(-?[0-9]+\.[0-9]+)$/, $yourString, $matches);

и $matches будут

array(
  0 => '7 Eleven Manly West 10.00',
  1 => '7 Eleven Manly West ', 
  2 => '10.00'
)
2 голосов
/ 06 декабря 2011

вам не нужно использовать регулярное выражение, если вы знаете, что оно всегда будет отформатировано следующим образом, где сумма будет последней частью.Вы можете сделать

$data = explode(" ",$inputstring);
$amount = array_pop($data);
$place = implode(" ",$data);

, но если вы действительно хотите регулярное выражение, попробуйте что-то вроде

(([a-zA-Z0-9]+\s)+)(-?[1-9][0-9]*\.[0-9]{2})

. Затем вы можете получить место в первой обратной ссылке и цену в 3-м * 1007.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...