[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вхождение слова в текст
Basili4
мне нужно заменить в тексте все "data" на определеный текст. Беда в том что вот эта data может встречаться в составе других слов например database

а мне надо только data в любом месте текста

делал так
# data #ius пропускает в начале строки после табуляции в конце строки



Спустя 5 минут, 11 секунд (30.11.2010 - 12:05) vagrand написал(а):
str_replace(' data ', ' replace ', $text);

Спустя 1 минута, 55 секунд (30.11.2010 - 12:07) Basili4 написал(а):
vagrand
так будет заменять и в составе другого текста

надо укцуцйуцй data sdfsdfsd

не надо ыфвавыфавы database sdfsdfsd

Спустя 1 час, 20 минут, 11 секунд (30.11.2010 - 13:27) inpost написал(а):
Basili4
А чем твой первый вариант плох? Ты показал код, но не объяснил, чем он тебе не подходит

Спустя 18 минут, 28 секунд (30.11.2010 - 13:45) Basili4 написал(а):
Цитата (vagrand @ 30.11.2010 - 13:05)
# data #ius пропускает в начале строки после табуляции в конце строки


Спустя 51 секунда (30.11.2010 - 13:46) Basili4 написал(а):
Basili4
мне надо
только слово а не вхождение этого слово с текст.

Спустя 51 секунда (30.11.2010 - 13:47) inpost написал(а):
#[\s]{0,1}data[\s]{0,1}# - может так?

Спустя 2 минуты, 32 секунды (30.11.2010 - 13:50) Basili4 написал(а):
и внутри слов находит sad.gif

Спустя 1 минута, 21 секунда (30.11.2010 - 13:51) inpost написал(а):
#[\s]{0,1}[^a-zA-Zа-яА-ЯёЁ]data[^a-zA-Zа-яА-ЯёЁ][\s]{0,1}#

Спустя 2 минуты, 51 секунда (30.11.2010 - 13:54) Basili4 написал(а):
текст вот такой

"database param1: data param2: data param2:data"


значит надо заменить только все data на мой текст.

database- не трогать

Спустя 2 минуты, 41 секунда (30.11.2010 - 13:56) Basili4 написал(а):
inpost
ничего не меняет

Спустя 1 минута, 18 секунд (30.11.2010 - 13:58) inpost написал(а):
Если уж реальное извращение, то:
#\sdata\s#
#^data #
# data$#


Ну я просто помочь хоть как-то хочу =)))
update: обновил

Спустя 1 минута, 12 секунд (30.11.2010 - 13:59) Basili4 написал(а):
inpost
может тогда так
# data |^data |data$#

Спустя 1 минута, 44 секунды (30.11.2010 - 14:01) inpost написал(а):
Basili4
Вместо пробела \s - он включает пробел, табуляцию и перенос строки.
А этот случай надо пробовать, я сам не силён в регулярках, я буду ждать конца конкурса для того, чтобы у Деда Мороза спросить, как правильно составить мою регулярку =)

Спустя 2 минуты, 57 секунд (30.11.2010 - 14:04) Basili4 написал(а):
inpost
не получается ничего ладно спасибо. Может на гуглю чего

Спустя 1 минута, 10 секунд (30.11.2010 - 14:05) Basili4 написал(а):
получилось
$patern="#\sdata\s|^data\s|data$#";

Спустя 9 минут, 54 секунды (30.11.2010 - 14:15) inpost написал(а):
Я рад, что я был полезен =)

Спустя 14 часов, 35 минут, 8 секунд (1.12.2010 - 04:50) kirik написал(а):
Есть такая штука как word boundary - поиск только отдельных слов:
#\bdata\b#i

Спустя 5 часов, 11 минут, 18 секунд (1.12.2010 - 10:01) Basili4 написал(а):
kirik
не не работает sad.gif

Спустя 7 минут, 30 секунд (1.12.2010 - 10:09) kirik написал(а):
Цитата (Basili4 @ 1.12.2010 - 02:01)
не не работает

Гм.. у меня все ОК:
$str = 'database param1: data param2: data param2:data';
echo preg_replace('#\bdata\b#i', 'TEXT', $str);
/*
Результат:
database param1: TEXT param2: TEXT param2:TEXT
*/

Спустя 2 минуты (1.12.2010 - 10:11) Basili4 написал(а):
kirik
ммм спасибо я щас поковыряю

Спустя 12 минут, 13 секунд (1.12.2010 - 10:23) Basili4 написал(а):
kirik
ну да так и есть я забыл # нарисовать

Спустя 1 день, 1 час, 37 минут, 11 секунд (2.12.2010 - 12:00) grawest написал(а):
Вы хотите сказать, что данный шаблон не работает?
/data$/


Спустя 1 минута, 53 секунды (2.12.2010 - 12:02) Basili4 написал(а):
grawest
????
кто сказал что не работает.

Спустя 10 часов, 52 минуты, 36 секунд (2.12.2010 - 22:55) kirik написал(а):
Цитата (grawest @ 2.12.2010 - 04:00)
Вы хотите сказать, что данный шаблон не работает?

А почему он должен работать? Basili4'у нужно заменить четкое вхождение слова в любом месте текста. А ваш шаблон заменяет слово только если оно стоит в конце текста.

Спустя 10 часов, 38 минут, 33 секунды (3.12.2010 - 09:33) Basili4 написал(а):
kirik
Технически данный шаболон работает, но не так как надо.

Спустя 1 месяц, 23 дня, 12 часов, 39 минут, 43 секунды (26.01.2011 - 22:13) Dron19 написал(а):
вот работает, написал, проверил, пс, писал в кодировке utf-8, лови

$text = "database param1: data param2: data param2:data";
$text = preg_replace("/\b(\s?)data(\s?)\b/iu","\\1replace\\2",$text);
echo "<br>".$text;
// database param1: replace param2: replace param2:replace

Спустя 4 минуты, 19 секунд (26.01.2011 - 22:17) Basili4 написал(а):
Dron19
Спасибо большое. Но уже не актуально smile.gif

Спустя 53 секунды (26.01.2011 - 22:18) Dron19 написал(а):
Цитата (Basili4 @ 26.01.2011 - 19:17)
Dron19
Спасибо большое. Но уже не актуально smile.gif

да мне просто сейчас делать нефиг =), решаю чужие задачи =)

Спустя 11 минут, 28 секунд (26.01.2011 - 22:29) Dron19 написал(а):
да все равно ты мне + торчишь smile.gif


_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.