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 :: разбивка предложения

 PHP.SU

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


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

> Описание: регулярки
LEONeso
Отправлено: 02 Ноября, 2010 - 14:02:52
Post Id



Посетитель


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


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




Здравствуйте, пытаюсь разбить предложение такого типа: 'мой текст (в скобках слова)'
разбить так, чтоб можно было собрать его в массив типа 'мой текст' и 'в скобках слова', но не получается, ковыряюсь, пытаюсь, уже пытаюсь методом тыка, но что-то не получается.

пока остановился на этом, но тут пусто
PHP:
скопировать код в буфер обмена
  1. $text = 'мой текст (в скобках слова)';
  2. $wor=preg_match("/\w*[(]\w[)]/",$text,$wor2);
  3. print_r ($wor2);

(Добавление)
более ближе:
PHP:
скопировать код в буфер обмена
  1. $text = 'мой текст (в скобках слова)';
  2. $wor=preg_match("/(\D*)[(\d*](\D*)[)]/",$text,$wor2);
  3. print_r ($wor2);


выдача: Array ( [0] => мой текст (в скобках слова) [1] => мой текст [2] => в скобках слова )
собственно верны 1 и 2, 0 - это все, что было.
Но это я сделал методом тыка, проб и ошибок, но кто мне объяснит, грамотно ли выражение)?
(Добавление)
Если в тексте встречаются цифры, все "летит". Хм

(Отредактировано автором: 02 Ноября, 2010 - 14:23:02)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
OrmaJever Модератор
Отправлено: 02 Ноября, 2010 - 14:59:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




"#(.+?)\((.+?)\)#i"

попробуй


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LEONeso
Отправлено: 02 Ноября, 2010 - 15:06:25
Post Id



Посетитель


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


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




работает. спасибо
(Добавление)
помогите убрать пробел в конце Однако .
PHP:
скопировать код в буфер обмена
  1.       $text = 'мой текст (в скобках слова)';
  2.       $wor=preg_match("#(.+?)\((.+?)\)#i",$text,$wor2);
  3.       print_r ($wor2);

(Добавление)
мой текст_этот_пробел_(в скобках слова)

(Отредактировано автором: 02 Ноября, 2010 - 16:50:34)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
pitbul
Отправлено: 02 Ноября, 2010 - 16:59:17
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2010  


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




как вариант
PHP:
скопировать код в буфер обмена
  1.  
  2. $text = 'мой текст (в скобках слова)';
  3. $text = rtrim($text,')');
  4. $array_text=explode('(',$text);
  5. print_r($array_text);
  6.  
 
 Top
LEONeso
Отправлено: 02 Ноября, 2010 - 17:31:35
Post Id



Посетитель


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


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




сделал так Однако на выходе rtrim
PHP:
скопировать код в буфер обмена
  1. $text = 'мой текст (в скобках слова)';
  2. $wor=preg_match("#(.+?)\((.+?)\)#i",$text,$wor3);
  3. print_r (rtrim($wor3));


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Uchkuma
Отправлено: 02 Ноября, 2010 - 18:59:31
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




LEONeso, вы rtrim применяете к массиву? rtrim в качестве параметра принимает строку!
 
 Top
LEONeso
Отправлено: 02 Ноября, 2010 - 23:47:57
Post Id



Посетитель


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


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




ну работает ведь


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
pitbul
Отправлено: 03 Ноября, 2010 - 08:26:01
Post Id


Новичок


Покинул форум
Сообщений всего: 26
Дата рег-ции: Май 2010  


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




соответственно
 
 Top
Uchkuma
Отправлено: 03 Ноября, 2010 - 09:20:37
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




LEONeso пишет:
ну работает ведь
Недокументированная возможность??? )
 
 Top
LEONeso
Отправлено: 03 Ноября, 2010 - 17:33:16
Post Id



Посетитель


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


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




Uchkuma пишет:
Недокументированная возможность??? )

Может быть, сужу по фактам, а не по бумажкам.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
JustUserR
Отправлено: 04 Ноября, 2010 - 11:57:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Uchkuma пишет:
Недокументированная возможность??? )
Для большого числа встроенных в библиотеку PHP функций обеспечивающих работу со стоковыми переменными - включается возможность указания индексного массива в позиции аргумента использование которых требует объект строкового типа Конерктное трактования принимаемого массива может варьироваться в зависимости от целевой функции - однако общим назначением является или применение соответствующей функциональности к набору строк или развертку указанных вхождений для замены


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
OrmaJever Модератор
Отправлено: 04 Ноября, 2010 - 12:47:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




JustUserR пишет:
Для большого числа встроенных в библиотеку PHP функций обеспечивающих работу со стоковыми переменными - включается возможность указания индексного массива

надо в описании всех таких функций писать что можно масив использовать. Ато потом и получается что в описании не написано но чудом работает.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB