Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с preg_split

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: регулярные выражения
crazybite
Отправлено: 14 Января, 2015 - 11:19:24
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




Код:

PHP:
скопировать код в буфер обмена
  1. $string ="=10||gdb&!abc&bca||sd<>rtr";
  2. $arr = preg_split("/(?=!)|(?=&)|(?=\|\|)|(?=<>)|(?=\=)/",$string);
  3. var_dump($arr);

Вывод такой:
    array(8) {
    [0]=>
    string(0) ""
    [1]=>
    string(3) "=10"
    [2]=>
    string(5) "||gdb"
    [3]=>
    string(1) "&"
    [4]=>
    string(4) "!abc"
    [5]=>
    string(4) "&bca"
    [6]=>
    string(4) "||sd"
    [7]=>
    string(5) "<>rtr"
    }

Хочу что бы сплитилось после символов & и || а не перед ними.
Подскажите как сделать?
 
 Top
skiphog
Отправлено: 14 Января, 2015 - 11:53:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




Такое прокатит? или не то? Улыбка
PHP:
скопировать код в буфер обмена
  1. $string ="=10||gdb&!abc&bca||sd<>rtr";
  2. $arr = preg_split("/[&\|\|]+/",$string);
  3. var_dump($arr);
 
My status
 Top
crazybite
Отправлено: 14 Января, 2015 - 12:48:16
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




skiphog пишет:
Такое прокатит? или не то? Улыбка
PHP:
скопировать код в буфер обмена
  1. $string ="=10||gdb&!abc&bca||sd<>rtr";
  2. $arr = preg_split("/[&\|\|]+/",$string);
  3. var_dump($arr);



    array(8) {
    [0]=>
    string(0) ""
    [1]=>
    string(3) "=10"
    [2]=>
    string(3) "gdb"
    [3]=>
    string(0) ""
    [4]=>
    string(4) "!abc"
    [5]=>
    string(3) "bca"
    [6]=>
    string(2) "sd"
    [7]=>
    string(5) "<>rtr"
    }

Вот так получается. А что бы не удалялись || и &, а сплитились в отдельный элемент массива?
Вот так:
    array(11) {
    [0]=>
    string(0) ""
    [1]=>
    string(3) "=10"
    [2]=>
    string(2) "||"
    [3]=>
    string(3) "gdb"
    [4]=>
    string(1) "&"
    [5]=>
    string(4) "!abc"
    [6]=>
    string(1) "&"
    [7]=>
    string(3) "bca"
    [8]=>
    string(2) "||"
    [9]=>
    string(2) "sd"
    [10]=>
    string(5) "<>rtr"
    }

(Отредактировано автором: 14 Января, 2015 - 13:06:24)

 
 Top
skiphog
Отправлено: 14 Января, 2015 - 14:26:33
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




Что, если так?
PHP:
скопировать код в буфер обмена
  1. $string = "=10||gdb&!abc&bca||sd<>rtr";
  2. $arr = preg_split("/(\|\|)|(&)/",$string,null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
  3. var_dump($arr);
 
My status
 Top
crazybite
Отправлено: 14 Января, 2015 - 15:11:21
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




skiphog пишет:
Что, если так?
PHP:
скопировать код в буфер обмена
  1. $string = "=10||gdb&!abc&bca||sd<>rtr";
  2. $arr = preg_split("/(\|\|)|(&)/",$string,null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
  3. var_dump($arr);

Здорово! Спасибо большущие.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB