Preg_match усекает последний элемент из массива - PullRequest
1 голос
/ 08 января 2020

У меня есть образец строки

Kim Ward$541.30$0.00$611.67 Kim Ward$784.25$0.00$886.20 Kim Ward$1,807.45$0.00$2,042.42

Мне нужно вставить его в массив. Но это всегда усечение последнего элемента. Я имею в виду вместо 3 Ким Уорд это показывает 2. Я попробовал это

preg_match_all('/ ?([^\$]+)(\$[0-9\.]+)(\$[0-9\.]+)(\$[0-9\.]+)/i',$cus_block_string,$results);

1 Ответ

1 голос
/ 08 января 2020

Настройте группы захвата шаблона для чисел после $, чтобы они принимали запятые ,, поскольку они могут присутствовать в числах в тысячах (\$[0-9\.,]+):

preg_match_all('/ ?([^\$]+)(\$[0-9\.,]+)(\$[0-9\.,]+)(\$[0-9\.,]+)/i', 
               $cus_block_string, $results);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...