Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заменить символы на... 
:(
    Опции темы
DiMoN_TD
Дата 26.5.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



   
Добрый день!
Нужна помощь в рег. выражении (сам не знаю их), потому прошу написать выражение регулярное, которое заменяла символ "_" например на +, но проблема в том, что если в предложении идут подряд символы "_" например "____", то заменить на ОДИН "+"

Помогите пожалуйста! smile
PM MAIL   Вверх
bobik02
Дата 26.5.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 26.11.2007

Репутация: 2
Всего: 14



Код

<?php
    $string = 'April 15,_ 2008 ______  this is _  shit ___  bob im___sory';
    $pattern = "#\b_#i";
    $replacement = "+";
    echo preg_replace($pattern, $replacement, $string);
?>

Меняет только между началом и концом строки.

Код

April 15,+ 2008 +_____  this is +  shit +__  bob im___sory



Код

<?php
    $string = 'April 15,_ 2008 ______  this is _  shit ___  bob im___sory';
    $pattern = "#_(?![_])#is";
    $replacement = "+";
    echo preg_replace($pattern, $replacement, $string);

?>

Меняет так:
Код

April 15,+ 2008 _____+  this is +  shit __+  bob im__+sory


Но это все далеко от совершенства  smile 
З.Ы сам сегодня начал изучать регулярные выражения  smile 


--------------------
Have a nice day
PM   Вверх
Letov
Дата 26.5.2008, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Вот код (заменяет все вхождения любого количества символов '_' на один символ '+'):
Код

<?php
$string = 'April 15,_ 2008 ______  this is _  shit ___  bob im___sory';
$pattern = '/[_]+/';
$replacement = '+';
echo preg_replace($pattern, $replacement, $string);
?>


Исходная строка: April 15,_ 2008 ______  this is _  shit ___  bob im___sory
Результат: April 15,+ 2008 + this is + shit + bob im+sory


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
bobik02
Дата 26.5.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 26.11.2007

Репутация: 2
Всего: 14



Letov  smile 
Цитата(DiMoN_TD @  26.5.2008,  21:04 Найти цитируемый пост)
то заменить на ОДИН "+"

Хех, я просто не заметил в начале этого.  (точнее не придал этому значения smile )
Хотя и автор в верхнем регистром указал, что надо заменить последовательность на один символ ...

Добавлено через 7 минут и 11 секунд
Я то думал нужно заменить первый встречающий символ, а если за ним есть подобные их не трогать   smile 


Регулярные выражения вещь удобная, только как заставить(переучить) себя не изобретать велосипед с помощью строковых функций ?  
( А то заметил за собой, некоторые задачи решаю с помощью строковых функций/циклов/условий и т.п., хотя понимаю что возможно это не правильно, и можно было б решить с pcre быстрей, как статуя понимаю но делаю через Ж  smile  )

З.Ы. Автор  Для подобных тем(рода: "помогите мне в том, в чем я не понимаю, и не хочу разбираться") есть "Центр помощи"  smile 


--------------------
Have a nice day
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.