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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать preg_replace с нестрогим регистром, запутался в регулярке 
:(
    Опции темы
kichSman
Дата 26.3.2009, 20:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



есть такая вот задачка
Код

preg_replace("/НАЛОГ/","<rec style=\"background-color:#ff9900\">НАЛОГ</rec>",$row['title']);

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

Поможите пожалуйста

Это сообщение отредактировал(а) kichSman - 26.3.2009, 20:47
PM MAIL   Вверх
enof
Дата 26.3.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



kichSman, модификатор i
PM MAIL ICQ Skype   Вверх
kichSman
Дата 26.3.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(enof @ 26.3.2009,  20:49)
kichSman, модификатор i

Просто модификатор i не помогает, так как искомое может находиться внутри слова 


К примеру, заменить в слове НАЛОГООБЛОЖЕНИЕ

скрипт
Код

preg_replace("/налог/i","<rec style=\"background-color:#b8ffa5\">НАЛОГ</rec>",$row['title']);


не заменяет

Это сообщение отредактировал(а) kichSman - 26.3.2009, 20:54
PM MAIL   Вверх
enof
Дата 26.3.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



И вообще, для решения подобных задач,  лучше использовать не регулярки, а строковые функции( str_*)
В вашем случае нужно http://php.net/str_ireplace

Добавлено через 1 минуту и 8 секунд
Цитата(kichSman @  26.3.2009,  20:51 Найти цитируемый пост)

Просто модификатор i не помогает, так как искомое может находиться внутри слова  

Вы о чем?

Добавлено через 1 минуту и 49 секунд
Вам нужен регистронезависимый поиск?
/НАЛОГ/i

Добавлено через 3 минуты и 10 секунд
utf8 ? добавте u.
PM MAIL ICQ Skype   Вверх
kichSman
Дата 26.3.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(enof @ 26.3.2009,  20:53)
И вообще, для решения подобных задач,  лучше использовать не регулярки, а строковые функции( str_*)
В вашем случае нужно http://php.net/str_ireplace

Добавлено @ 20:54
Цитата(kichSman @  26.3.2009,  20:51 Найти цитируемый пост)

Просто модификатор i не помогает, так как искомое может находиться внутри слова  

Вы о чем?

Добавлено @ 20:55
Вам нужен регистронезависимый поиск?
/НАЛОГ/i

Добавлено @ 20:56
utf8 ? добавте u.

Код

str_ireplace("налог","<rec style=\"background-color:#b8ffa5\">НАЛОГ</rec>",$row['title']);


Даж в таком случае ругается на регистр

PM MAIL   Вверх
enof
Дата 26.3.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(kichSman @  26.3.2009,  21:00 Найти цитируемый пост)
Даж в таком случае ругается на регистр

как "ругается"?
PM MAIL ICQ Skype   Вверх
kichSman
Дата 26.3.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(enof @ 26.3.2009,  21:01)
как "ругается"?

 smile Да не, конешн никто не ругается, просто имел ввиду, что если нижний регистр, то задача не выполняется, если же указать верхним регистром, который соответствует содержимому контента, то изменения осуществляются 
PM MAIL   Вверх
enof
Дата 26.3.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробуйте выставте локаль.
Код

setlocale (LC_ALL, 'ru_RU');

PM MAIL ICQ Skype   Вверх
ksnk
Дата 26.3.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



kichSman, локаль правильная установлена?

Добавлено через 3 минуты и 35 секунд
Код

preg_replace("/(^|\W)налог(\W|$)/i","\\1<rec style=\"background-color:#b8ffa5\">НАЛОГ</rec>\\2",$row);



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
kichSman
Дата 26.3.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ksnk @ 26.3.2009,  21:11)
kichSman, локаль правильная установлена?

Добавлено @ 21:14
Код

preg_replace("/(^|\W)налог(\W|$)/i","\\1<rec style=\"background-color:#b8ffa5\">НАЛОГ</rec>\\2",$row);

где ее установить?
PM MAIL   Вверх
enof
Дата 26.3.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(kichSman @  26.3.2009,  21:16 Найти цитируемый пост)
установить? 

пост выше прочитайте. smile 
Цитата(ksnk @  26.3.2009,  21:11 Найти цитируемый пост)
(^|\W)

\b?
kichSman, 
Код

$str = preg_replace($pattern, $replace, $str);

Так хоть вызываете?а не то вдруг.
PM MAIL ICQ Skype   Вверх
kichSman
Дата 26.3.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(enof @ 26.3.2009,  21:23)
Цитата(kichSman @  26.3.2009,  21:16 Найти цитируемый пост)
установить? 

пост выше прочитайте. smile 
Цитата(ksnk @  26.3.2009,  21:11 Найти цитируемый пост)
(^|\W)

\b?
kichSman, 
Код

$str = preg_replace($pattern, $replace, $str);

Так хоть вызываете?а не то вдруг.

локаль где установить
PM MAIL   Вверх
enof
Дата 26.3.2009, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Выше пост в этой теме.

Это сообщение отредактировал(а) enof - 26.3.2009, 21:29
PM MAIL ICQ Skype   Вверх
kichSman
Дата 26.3.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(enof @ 26.3.2009,  21:28)
Выше пост в этой теме.

нет, налоговик, поэтому и в php не силен
PM MAIL   Вверх
enof
Дата 26.3.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(enof @  26.3.2009,  21:10 Найти цитируемый пост)
Попробуйте выставте локаль.
setlocale (LC_ALL, 'ru_RU');

Цитата(kichSman @  26.3.2009,  21:29 Найти цитируемый пост)
нет, налоговик, поэтому и в php не силен 

я не про пхп, а про то, что я несколько раз написал, что в начале темы уже было мною сказано, как это сделать smile 

Это сообщение отредактировал(а) enof - 26.3.2009, 21:31
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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