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
Форумы портала PHP.SU :: Версия для печати :: Удалить (вырезать) символ из определённого места строки
Форумы портала PHP.SU » » Вопросы новичков » Удалить (вырезать) символ из определённого места строки

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

1. l_2001 - 06 Февраля, 2017 - 17:13:11 - перейти к сообщению
Здравствуйте!
Прошу помочь советом... Есть текстовая строка вида "текст 5 А", а её нужно привести к виду "текст 5А", т.е. удалить второй пробел, если он есть... Попробовал извращаться выкусывая "текст 5" и потом отдельно "А", а после склеивать две переменные, но это как-то длинно и, как мне кажется, не правильно! Буду очень благодарен, если подскажете более рациональный путь!
Заранее спасибо!
2. Строитель - 06 Февраля, 2017 - 18:55:33 - перейти к сообщению
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А
3. l_2001 - 06 Февраля, 2017 - 19:50:00 - перейти к сообщению
Строитель пишет:
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 А'

 

Powered by ExBB FM 1.0 RC1