@dimlee

Как разбить адрес?

Есть адрес, например: 000000, Регион, Населенный пункт, Название улицы, и тд.
Необходимо разбить строку по третьему вхождению символа запятой, те получить вот такой результат
000000, Регион, Населенный пункт
Название улицы, и тд.
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 4
vabka
@vabka
Токсичный шарпист
Тут можно без регулярных выражений.
Делим по запятой и кладём в новый массив первые 3 или 4 элемента.
Ответ написан
@shmaroder
https://creditpower.ru
Например так:
(.*?,.*?,.*?),.*

ссылка
const regex = /(.*?,.*?,.*?),.*/gm;
const str = `000000, Регион, Населенный пункт, Название улицы, 25`;
const subst = `$1`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);
Ответ написан
Комментировать
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Решение на PHP:
<?php
echo implode( // собираем строку
	",", 
	array_slice( // берем 3 первых эдемента
		explode(",", $address), // разбиваем на массив по запятой
		0, 
		3
	)
);


Ещё вариант:
preg_match_all('/,/', $address, $matches, PREG_OFFSET_CAPTURE);

echo substr($address, 0, $matches[0][2][1]);


share PHP code
Ответ написан
Комментировать
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы