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]   

> Без описания
myocean
Отправлено: 18 Октября, 2012 - 15:33:50
Post Id


Гость


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


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




Помогите написать регулярку...

Есть текст начинающийся так:

$str = '[слово или "несколько" слов возможно еще какие-то символы] - бла бла бла [бла бла бла] бла бла...';


Необходимо написать функцию вытаскивающую текст из данной переменной... с удалением тире и перевода первого символа текста в верхний регистр...

То-есть на выходе нужно:

$out = '[слово или "несколько" слов возможно еще какие-то символы]';
$str = 'Бла бла бла [бла бла бла] бла бла...';

при учете что количество пробелов вокруг тире может быть несколько...


Спасибо!
 
 Top
KingStar
Отправлено: 18 Октября, 2012 - 15:38:20
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




PHP:
скопировать код в буфер обмена
  1. $str = '[слово или "несколько" слов] - бла бла бла [бла бла бла] бла бла...';
  2. $array = explode(" - ", $str);
  3. echo $array[0];
  4. echo ucfirst($array[1]);

(Добавление)
но это с учетеом того, что в блоке [слово или "несколько" слов] не будет встречаться тире с пробелами в обе стороны


-----
То что программа работает, не означает что она написана правильно!
 
 Top
myocean
Отправлено: 18 Октября, 2012 - 15:39:57
Post Id


Гость


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


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




Вот блин, а ведь необычное решение...
правда тире могу повторятся...

Спасибо, возьму на вооружение...

А если регуляркой, то как?

(Отредактировано автором: 18 Октября, 2012 - 15:40:49)

 
 Top
Okula
Отправлено: 18 Октября, 2012 - 16:07:50
Post Id



Участник


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


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




myocean, для того чтобы explode() делило только по первому "-" (тире), нужно указать третий аргумент в функции:
 
 Top
KingStar
Отправлено: 18 Октября, 2012 - 18:45:58
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




Okula а если не будет тире??? а если будет??? а если два или три будет???


-----
То что программа работает, не означает что она написана правильно!
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Октября, 2012 - 20:34:18
Post Id



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


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




KingStar пишет:
а если не будет тире??? а если будет??? а если два или три будет???

 
 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