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]   

> Без описания
l_2001
Отправлено: 06 Февраля, 2017 - 17:13:11
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2014  


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




Здравствуйте!
Прошу помочь советом... Есть текстовая строка вида "текст 5 А", а её нужно привести к виду "текст 5А", т.е. удалить второй пробел, если он есть... Попробовал извращаться выкусывая "текст 5" и потом отдельно "А", а после склеивать две переменные, но это как-то длинно и, как мне кажется, не правильно! Буду очень благодарен, если подскажете более рациональный путь!
Заранее спасибо!
 
 Top
Строитель Модератор
Отправлено: 06 Февраля, 2017 - 18:55:33
Post Id



Участник


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


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




l_2001 пишет:
нужно привести к виду "текст 5А", т.е. удалить второй пробел, если он есть
PHP:
скопировать код в буфер обмена
  1. $txt = 'текст 5 А';
  2. $patt = '~(\w+\s\d)\s(\w)~iu';
  3.  
  4. echo preg_replace($patt, '$1$2', $txt); // текст 5А
 
 Top
l_2001
Отправлено: 06 Февраля, 2017 - 19:50:00
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2014  


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




Строитель пишет:
l_2001 пишет:
нужно привести к виду "текст 5А", т.е. удалить второй пробел, если он есть
PHP:
скопировать код в буфер обмена
  1. $txt = 'текст 5 А';
  2. $patt = '~(\w+\s\d)\s(\w)~iu';
  3.  
  4. echo preg_replace($patt, '$1$2', $txt); // текст 5А


Реально!!! Так работает!!! Спасибо Вам, огромное спасибо! Я понял, мне надо хорошо изучить регулярки... Недовольство, огорчение

А вот с такой регуляркой
$patt = '~(\w+\s\d{1,})\s(\w)~iu';
ещё лучше, ведь текст может быть и таким 'текст 555 А'

(Отредактировано автором: 07 Февраля, 2017 - 14:56:54)

 
 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