Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 04.04.2009, 14:16   #1
Специалист
 
Аватар для Sway
 
Регистрация: 15.06.2007
Сообщений: 392
Вес репутации: 217
Sway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человек
По умолчанию Вопрос по регулярке

каким регулярным выражением сделать так чтобы обрабатывалось все что после слова - фасол ?
например фасоль, фасолью и пр...
пробовал /^фасол/ - не помогает..

Добавлено через 1 минуту
делал так:
PHP код:
$alias=ereg_replace('/^фасол/'$bufferluk$alias1); 
__________________
Рекламная сеть с картинками в день приносит 12-20 $||| А вот здесь и тут я получаю около 4 баксов в день)) немного, но это пока)))
Сделаю сайт на Joomla (в личку), хорошие, серьезные сайты.

Последний раз редактировалось Sway; 04.04.2009 в 14:19. Причина: Добавлено сообщение
Sway вне форума   Ответить с цитированием
Старый 04.04.2009, 19:14   #2
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 287
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

^фасол[^/]+
__________________
Починяю разнокалиберные примуса здесь.
Atomic вне форума   Ответить с цитированием
Старый 04.04.2009, 20:05   #3
Специалист
 
Аватар для Sway
 
Регистрация: 15.06.2007
Сообщений: 392
Вес репутации: 217
Sway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Atomic Посмотреть сообщение
^фасол[^/]+
писал так:
PHP код:
$alias1=ereg_replace("^фасол[^/]+"$bufferluk$alias1); 
увы, не помогло
__________________
Рекламная сеть с картинками в день приносит 12-20 $||| А вот здесь и тут я получаю около 4 баксов в день)) немного, но это пока)))
Сделаю сайт на Joomla (в личку), хорошие, серьезные сайты.
Sway вне форума   Ответить с цитированием
Старый 04.04.2009, 20:46   #4
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 238
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Так не получиться, надо что-то примерное
PHP код:
if(preg_match('/^(.*фасол)(.*)$/Us'$bufferluk$m)){
//здесь делаете замены, например 
$m[2] = str_replace('горох''бобы'$m[2]);
$bufferluk $m[1].$m[2];

ahsinis вне форума   Ответить с цитированием
Старый 04.04.2009, 20:56   #5
Специалист
 
Аватар для Sway
 
Регистрация: 15.06.2007
Сообщений: 392
Вес репутации: 217
Sway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человек
По умолчанию

дак ведь preg_match - это уже поиск и замена.
тоесть используя этот код:

PHP код:
$alias1 "рассказ про фасоль и о фасоле";

$bufferluk "<a href="/index.php?text=facol" title="Фасоль">фасоль</a>";

$alias1=ereg_replace("/^(.*фасол)(.*)$/Us"$bufferluk$alias1); 
я хотел бы получить следующее:

рассказ про <a href="/index.php?text=facol" title="Фасоль">фасоль</a> и о <a href="/index.php?text=facol" title="Фасоль">фасоле</a>

ну или как то так)
__________________
Рекламная сеть с картинками в день приносит 12-20 $||| А вот здесь и тут я получаю около 4 баксов в день)) немного, но это пока)))
Сделаю сайт на Joomla (в личку), хорошие, серьезные сайты.
Sway вне форума   Ответить с цитированием
Старый 04.04.2009, 22:03   #6
Новичок
 
Регистрация: 17.03.2009
Сообщений: 3
Вес репутации: 0
good_robot скоро станет известенgood_robot скоро станет известен
По умолчанию

PHP код:
$alias1 "рассказ про фасоль и о фасоле";

$bufferluk '<a href="/index.php?text=facol" title="\\1">\\1</a>';

$alias1=preg_replace("/(фасол[а-яё]*)/i"$bufferluk$alias1); 
good_robot вне форума   Ответить с цитированием
Старый 04.04.2009, 22:18   #7
Специалист
 
Аватар для Sway
 
Регистрация: 15.06.2007
Сообщений: 392
Вес репутации: 217
Sway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от good_robot Посмотреть сообщение
PHP код:
$alias1 "рассказ про фасоль и о фасоле";

$bufferluk '<a href="/index.php?text=facol" title="\\1">\\1</a>';

$alias1=preg_replace("/(фасол[а-яё]*)/i"$bufferluk$alias1); 
Сработало, спасибо!
а можно разъяснить, как вот это: \\1 - сработало?
получается, что, нашел, то и подставил?
__________________
Рекламная сеть с картинками в день приносит 12-20 $||| А вот здесь и тут я получаю около 4 баксов в день)) немного, но это пока)))
Сделаю сайт на Joomla (в личку), хорошие, серьезные сайты.
Sway вне форума   Ответить с цитированием
Старый 04.04.2009, 22:31   #8
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 250
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

Вот прикинул на питоне (на пхп сейчас практически не пишу, но аналогичное точно можно сделать и на пхп):

import re

def repl(s):
return u'<a href="/index.php?text=facol" title="Фасоль">%s</a>' % s.group(1)

print re.sub(ur'(фасол[а-я]+)', repl, u'рассказ про фасоль и о фасоли')

Пример выдает:
рассказ про <a href="/index.php?text=facol" title="Фасоль">фасоль</a> и о <a href="/index.php?text=facol" title="Фасоль">фасоли</a>

Сначала определяем функцию repl, которой будут передаваться найденные подстроки в виде объектов для замены. А затем используем метод регулярных выражений sub, которому передаем регулярное выражение, исходный текст и функцию, которая обрабатывает замену. На пхп я такое раньше тоже делал.

Добавлено через 3 минуты
Sway
Цитата:
а можно разъяснить, как вот это: \\1 - сработало?
получается, что, нашел, то и подставил?
\1 - это первый блок (в скобках который для замены), \2 - второй и т.д.
Можно через подстановку \1... или в сложных случаях, как в моем примере на питоне через ф-цию замену обрабатывать. preg_replace вроде также может принимать функцию вместо строки для замены.

Последний раз редактировалось boric; 04.04.2009 в 22:31. Причина: Добавлено сообщение
boric вне форума   Ответить с цитированием
Старый 04.04.2009, 22:35   #9
Специалист
 
Аватар для Sway
 
Регистрация: 15.06.2007
Сообщений: 392
Вес репутации: 217
Sway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человекSway - очень-очень хороший человек
По умолчанию

спасибо, разобрался
__________________
Рекламная сеть с картинками в день приносит 12-20 $||| А вот здесь и тут я получаю около 4 баксов в день)) немного, но это пока)))
Сделаю сайт на Joomla (в личку), хорошие, серьезные сайты.
Sway вне форума   Ответить с цитированием
Старый 04.04.2009, 22:55   #10
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 238
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Sway Посмотреть сообщение

я хотел бы получить следующее:

рассказ про <a href="/index.php?text=facol" title="Фасоль">фасоль</a> и о <a href="/index.php?text=facol" title="Фасоль">фасоле</a>

ну или как то так)
А в первом посте что написали?
Цитата:
каким регулярным выражением сделать так чтобы обрабатывалось все что после слова - фасол ?
ahsinis вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 13:57.