Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Супер explode через regexp, строка1 "это строка 2" стр3 стр4 "стр 5" 
:(
    Опции темы
Elfet
  Дата 6.4.2005, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Нужно собрать массив из
Цитата
строка1 "это строка 2" стр3 стр4 "стр 5"

Код
строка1
это строка 2
стр3
стр4
стр 5

Разделитель - один пробел smile

smile

Прошу прощения не смог найти и сам тоже не смог smile smile


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 6.4.2005, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



preg_split smile
PM ICQ   Вверх
S.A.P.
Дата 6.4.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Mal Hack а строку в кавычках возьмет? smile
PM MAIL   Вверх
Mal Hack
Дата 6.4.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



А почему нет-то.. Надо просто рэг сделать, а щас голова не варит. Пока вот такой вариант:
Код
$str = 'строка1 "это строка 2" стр3 стр4 "стр 5"';
preg_match_all( "#(?:[\w\d]+|(?:(\"|\')[\w\d\s]+\\1))#i" , $str , $matches );
print(implode("<br>",$matches[0]));

PM ICQ   Вверх
Elfet
Дата 7.4.2005, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Mal Hack, что то странно этот твой код работает smile


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 7.4.2005, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Elfet @ 7.4.2005, 12:59)
Mal Hack, что то странно этот твой код работает smile

В плане? Поясни.
PM ICQ   Вверх
Ринат
Дата 7.4.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 31.3.2005

Репутация: нет
Всего: нет



как вариант каждую строку объявляем переменной, потом compact (), но проще граммотный рег написать наверное, хотя значениями переменных могут быть и массивы
курим ман (вместе)
Добавлено @ 16:53
http://ru2.php.net/manual/ru/function.compact.php
PM MAIL   Вверх
Elfet
Дата 7.4.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(Mal @ 7.4.2005, 13:00)
В плане? Поясни.

Всмысле все в порядке smile Это я просто ошибся smile

Цитата
граммотный рег написать

а вот это у меня никак и не удаётся smile smile



--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 7.4.2005, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Elfet @ 7.4.2005, 20:34)
Всмысле все в порядке smile Это я просто ошибся smile

Ну дык пользуйся наздоровье smile
PM ICQ   Вверх
Elfet
Дата 7.4.2005, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(Mal @ 7.4.2005, 21:07)
Ну дык пользуйся наздоровье

угу спасибо! smile


Всё же мне хочется сделат через регехр полностью smile


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 7.4.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Elfet @ 7.4.2005, 21:20)
Всё же мне хочется сделат через регехр полностью smile

preg-split не получится.
Почему: гнадо в паттерне указывать ", а следовательно при разбивке они будут теряться.
так что только preg_match_all, который разбивает на массив.
PM ICQ   Вверх
Elfet
Дата 8.4.2005, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(Mal @ 7.4.2005, 22:55)
гнадо в паттерне указывать ", а следовательно при разбивке они будут теряться.

так я их и так удаляю smile мне они совсем ни к чему smile


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 8.4.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Все равно не получится. Ты в прег-сплите указываешь разделитель, при этом ты не можешь указать интервал для этого разделителя, т.е. чтобы не рассматривать пробелы внутри ". Юзай preg_match %) тоже самое smile
PM ICQ   Вверх
Elfet
Дата 8.4.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



ладно так и быть smile


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 10.4.2005, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Вот сделал, правда не через регеп smile может пригодится кому -
Код

<pre>
<?php

$str = 'ñòðîêà1 "ýòî ñòðîêà 2" ñòð3 ñòð4 "ñòð 5"';

$arr=array();
$karr=0;
$inkav=false;
for( $i=0; $i<strlen($str); $i++ )
{
 if($str[$i] != "\"")
 {
  if(!$inkav)
  {
   if($str[$i] != " ")
   {
    @$arr[$karr] .= $str[$i];
   }
   else
   {
    $karr++;
   }
  }
  else
  {
   @$arr[$karr] .= $str[$i];
  }
 }
 else
 {
  if(!$inkav)
  $inkav=true;
  else
  $inkav=false;
 }
}

print_r($arr);
?>



--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 10.4.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Изврат smile
PM ICQ   Вверх
IZ@TOP
Дата 10.4.2005, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(Mal @ 10.4.2005, 21:06)
Изврат 


Mal Hack, поддерживаю.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Elfet
Дата 11.4.2005, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Mal Hack
IZ@TOP
И это чем же? smile Это ж самое наибыстрое?


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 11.4.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Elfet @ 11.4.2005, 13:37)
И это чем же?

Кодом. 15 строк вместо 1.

Цитата(Elfet @ 11.4.2005, 13:37)
Это ж самое наибыстрое?

Проверял? Разница в тысячну доли секунды это не быстрее. А я уверен, что твой код будет дольше выполняться, нежели 1 прег_матч
PM ICQ   Вверх
Elfet
Дата 11.4.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(Mal @ 11.4.2005, 14:04)
Проверял? Разница в тысячну доли секунды это не быстрее. А я уверен, что твой код будет дольше выполняться, нежели 1 прег_матч

За самим прег_матчем скрывается более длинная строчка, чем мои 15 smile smile


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 11.4.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Elfet @ 11.4.2005, 22:04)
За самим прег_матчем скрывается более длинная строчка, чем мои 15

но она не парсится PHP, а каботает внутри него !!
PM ICQ   Вверх
IZ@TOP
Дата 12.4.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Elfet, я уверен что в моем преге условий не больше чем 10. Кстате, кто его потер? smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Elfet
Дата 12.4.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(IZ @ 12.4.2005, 12:02)
Elfet, я уверен что в моем преге условий не больше чем 10. Кстате, кто его потер? 

да что за прег от ИЗАТОПА? smile Я его не видел smile


--------------------
PM MAIL WWW Skype   Вверх
IZ@TOP
Дата 12.4.2005, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Elfet, да, его кто-то потер... сейчас нарисую:

Код

preg_match("|^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$|", $IP, $M);
if($M[1] > 255 or $M[2] > 255 or $M[3] > 255 or $M > 254) {
    echo "bad ip";
} else {
    echo "ip valid";
}


Что то в этом роде...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 12.4.2005, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



IZ@TOP smile а ты темы попутал по ходу smile
IP это InfMag тему создавал smile
smile
PM ICQ   Вверх
IZ@TOP
Дата 12.4.2005, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Mal Hack, да... чего-то гдюкануло видимо smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1924 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.