Почему этой конструкцией не могу найти все значения?
Код:
preg_match_all('/(\d{1,3})?[-.,\s]?\d{1,3}[-.,\s]?\d{3}/', $text, $prices);
Значения для поиска:
4600
4 600
5 800
5.800
не находит:
5800000
хотя:
5.800.000 находит.
Если убрать скобки (\d{1,3}), получается что \d{1,3} уже не под вопросом, а обязательны.
preg_match_all('/\d{1,3}?[-.,\s]?\d{1,3}[-.,\s]?\d{3}/', $text, $prices);
Хотел сделать через или
preg_match_all('/\d{7,10}|\d{1,3}?[-.,\s]?\d{1,3}[-.,\s]?\d{3}/', $text, $prices);
Но так на то что до | вообще не реагирует, всегда использует вторую часть.