Проблема с Preg_replace

Тема в разделе "PHP программирование", создана пользователем clayton, 21 янв 2011.

  1. clayton

    clayton Гость

    Репутация:
    0
    Здравствуйте уважаемые форумчане, имеется вопрос такого характера: есть тектовый файл, в котором необходимо заменить 1-но слово на другое, например:
    Код (PHP):
    $pattern = "/value/";
    $new_val = "some_word";
    $text = preg_replace($pattern, $new_val, $text);
    Проблема заключается в том, что могут удалиться лишние слова, содержахие в себе данное слово, например: "values", "manyvalue" и прочее. Регулярное выражение типа :
    Код (PHP):
    "/\s+value\s+/"
    удаляет вокруг слова пробелы, что не приемлево.
    Как можно решить эту проблему, возможно с помощью какого-нибудь специального регулярного выражения или какой-нибудь особености функции preg_replace?
     
  2. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.431
    Симпатии:
    40
    "/value\s+/"
    меняйте на это, а к $new_val добавьте пробел, например.

    Еще, в ашем случае я бы юзал strpos() str_replace() и т.п.
    Ну или юзайте Preg_replace_callback()
    и колбеке уже разбирайте, надо менять или нет..
     
  3. acorn

    acorn PHP Developer
    Web Team

    Репутация:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    585
    Симпатии:
    3
    Preg_replace в данном задании использовать только для обучения, str_replace более логичен.
     
  4. clayton

    clayton Гость

    Репутация:
    0
    Вообще, я несовсем уточнил проблемц: слово обромлять могут не только пробелы, но еще и разнообразные символы, не входящие в слово(например: ":", ".", ",", "=" и прочее).
    Но проблему решил сам)), сделавши вывод что нужно всегда внимательно и до конца читать справки.
    Данный казус решается с помощью использования подмасок в preg_replace, вот так получилось:
    Код (PHP):
    $pattern = "/(\W{1})value(\W{1})/";
    $new_val = "\$1some_word\$2";
    $text = preg_replace($pattern, $new_val, $text);
    Подробности описаны Здесь
     
Загрузка...
Похожие Темы - Проблема Preg_replace
  1. _alexis_
    Ответов:
    4
    Просмотров:
    71
  2. Lisenok
    Ответов:
    19
    Просмотров:
    261
  3. thunder
    Ответов:
    1
    Просмотров:
    119
  4. SevenEight
    Ответов:
    0
    Просмотров:
    119
  5. imendan
    Ответов:
    13
    Просмотров:
    270

Поделиться этой страницей