Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Убрать пробелы
 
 автор: AlexDIXI   (22.07.2012 в 12:15)   письмо автору
 
 

Надо в строке убрать пробелы только между цифрами.

Peck Ethan 1 0 Things I Hate About You

Чтобы вышло:

Peck Ethan 10 Things I Hate About You

  Ответить  
 
 автор: cheops   (22.07.2012 в 14:09)   письмо автору
 
   для: AlexDIXI   (22.07.2012 в 12:15)
 

Можно начать отталкиваться от следующего скрипта
<?php 
  $str 
"Peck Ethan 1 0 Things I Hate About You";
  
$pattern "|(\d)(\s+)(\d)|";
  
$str preg_replace($pattern"\\1\\3"$str);
  echo 
$str;
?>

  Ответить  
 
 автор: AlexDIXI   (22.07.2012 в 15:13)   письмо автору
 
   для: cheops   (22.07.2012 в 14:09)
 

Спасибо!

  Ответить  
 
 автор: AlexDIXI   (22.07.2012 в 15:16)   письмо автору
 
   для: cheops   (22.07.2012 в 14:09)
 

Ваш вариант только для 2х злачных чисел. А мне надо динамический, чтоб любое кол-во цифр с пробелами, в строке, убрались между ними пробелы.

  Ответить  
 
 автор: AlexDIXI   (22.07.2012 в 16:58)   письмо автору
 
   для: AlexDIXI   (22.07.2012 в 15:16)
 

Помогите..

  Ответить  
 
 автор: cheops   (22.07.2012 в 17:10)   письмо автору
 
   для: AlexDIXI   (22.07.2012 в 15:16)
 

Ммм... не очень понятно, посмотрите следующий пример, поправьте его таким образом, чтобы выявить проблему
<?php 
  $str 
"Peck Ethan 21 03 Things I Hate 23  342354 About You";
  
$pattern "|(\d)(\s+)(\d)|";
  
$str preg_replace($pattern"\\1\\3"$str);
  echo 
$str;
?>

  Ответить  
 
 автор: AlexDIXI   (23.07.2012 в 13:17)   письмо автору
 
   для: cheops   (22.07.2012 в 17:10)
 

Спосибо..

  Ответить  
 
 автор: AlexDIXI   (23.07.2012 в 16:23)   письмо автору
 
   для: cheops   (22.07.2012 в 17:10)
 

Peck Ethan 21 0 3 Things I Hate 2 3  342354 About You  

Выводит
Peck Ethan 210 3 Things I Hate 23 342354 About You

А должно
Peck Ethan 2103 Things I Hate 23342354 About You

  Ответить  
 
 автор: cheops   (23.07.2012 в 16:34)   письмо автору
 
   для: AlexDIXI   (23.07.2012 в 16:23)
 

Ага, тогда нужно подключать опережающие и ретроспективные проверки
<?php  
  $str 
"Peck Ethan 21 0 3 Things I Hate 2 3  342354 About You"
  
$pattern "|(?<=\d)(\s+)(?=\d)|"
  
$str preg_replace($pattern""$str); 
  echo 
$str
?>

  Ответить  
 
 автор: AlexDIXI   (15.08.2012 в 22:50)   письмо автору
 
   для: cheops   (23.07.2012 в 16:34)
 

Спасибо помогло!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования