[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения
Diakon
Добрый день!
Вот есть строка:
$str = "[name=val][name2=val2][name3=val3]";
подскажите регулярку, которая разберет эту строку на массив
array (
'[name=val]',
'[name2=val2]',
'[name3=val3]'
);


Спасибо всем, кто поможет!
inpost
А зачем такую кривую строку делать?
Может стоит всё же подправить код и отдавать какую-нибудь серилизацию, json, xml ?
explode по запятой, trim на '[] символы. Далее у тебя будет чистый key=value. Можно ещё один explode, и никакие регулярки не нужны.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
S.Chushkin
inpost, ну хочется человеку регулярку - пусть получит.

ТС, пробуйте так:
$s = "[name=val][name2=val2][name3=val3]";
var_dump(preg_split('/(?<=\])(?=\[)/', $s));


upd: Ах да, - PREG_SPLIT_DELIM_CAPTURE здесь не нужен. Убрал.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Kusss
я хз зачем это, но вот так можно.
$str = "[name=val][name2=val2][name3=val3]";
$str = str_replace('][','],[',$str);
print_r( explode(',', $str) );


Игорь_Vasinsky
Цитата
var_dump(preg_split('/(?<=\])(?=\[)/', $s, -1, PREG_SPLIT_DELIM_CAPTURE));


ого)) и в хвост и в гриву)) бедный ослик.

$s = "[name=val][name2=val2][name3=val3]";
preg_match_all("#\[(.*)\]#U", $s, $matches);

echo '<pre>' . print_r($matches, 1) . '<pre>';


<pre>Array
(
[0] => Array
(
[0] => [name=val]
[1] => [name2=val2]
[2] => [name3=val3]
)

[1] => Array
(
[0] => name=val
[1] => name2=val2
[2] => name3=val3
)

)
<pre>


Цитата
я хз зачем это,

писать букв меньше.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.