[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения
z3rg
Делаю парселку и вот возникла проблема как можно заменить определенный тескст.

к примеру
<a href="урл_произвольный.php">любой_текст</a>

надо заменить "любой текст"
preg_replace - можно такое зделать или нет, если можно подскажите пожалуйста как. а то мну буду извращатсо вырежу урл, вырежу определенный текст, потом заменю определенный текст, потом соберу все воедино.

зы: определенный текст буду обрезать, так что вырезать урл и подставить не катит.



Спустя 25 минут, 49 секунд (28.04.2009 - 14:31) twin написал(а):
Цитата
вопрос к гуру

Я такой гоооордый biggrin.gif

PHP
<?

$a '<a href="урл_произвольный.php">любой_текст</a>';
$b 'определенный текст';
$a preg_replace("#<a([^>]+?)>([^>]+?)>#ui","<a$1>$b</a>",$a);
echo 
$a;

Спустя 10 минут, 58 секунд (28.04.2009 - 14:42) z3rg написал(а):
twin, ато ; ), большое пасибо,

ток у меня ui, не работало а с i гуд

Спустя 34 минуты, 22 секунды (28.04.2009 - 15:16) twin написал(а):
u это потому что я привык с utf-8 работать. Чего и тебе советую.

Спустя 2 дня, 1 час, 48 минут, 50 секунд (30.04.2009 - 17:05) glock18 написал(а):
PHP
$a preg_replace("#<a([^>]+?)>([^>]+?)>#ui","<a$1>$b</a>",$a);

Единственный недочет - неправильно распарсит, если в ссылку вложен еще какой-то тег (span, к примеру). С ними, конечно, сложнее получится выраженьице.

Спустя 1 месяц, 19 часов, 43 минуты, 52 секунды (31.05.2009 - 12:49) Alehandr написал(а):
Если убрать жадность и поставить вместо 2 подмаски (.+), то куда лучше будет!!!

Спустя 1 час, 43 минуты, 41 секунда (31.05.2009 - 14:33) twin написал(а):
Сначала попробуй, потом так заявляй. Он без жадности сожрет все до последней брички, а надо только ссылку.

Спустя 11 часов, 58 минут, 29 секунд (1.06.2009 - 02:31) Alehandr написал(а):
twin
сори, если наоборот жадность поставить, всегда путаю.

PHP
$a = preg_replace("/<a([^>]+?)>(.+?)<\/a>/uiU","<a$1>$b</a>",$a);

я вот это имел ввиду

Кстати, а почему у вас вместо // берется ## ?

Спустя 15 часов, 3 минуты, 50 секунд (1.06.2009 - 17:35) gooder отдыхающий написал(а):
Alehandr
абсолютно пофигу, какие брать ограничители шаблона
http://pyha.ru/forum/topic/19.0
Цитата
им может служить любой не алфавитно-цифровой символ, кроме обратного слеша "\". Очень часто в качестве ограничителя используется "/","|","%","$" или как в моём случае "#". Если в шаблоне нужно использовать символ который у нас выбран в качестве ограничителя перед ним добавляется обратный слеш "\" (пример: "#<b>\#</b>#i")

Спустя 53 минуты, 41 секунда (1.06.2009 - 18:29) twin написал(а):
Я так привык. Удобно тем, что не нужно экранировать слэши. Эта бяка гораздо реже появляется в подмасках.

Спустя 13 часов, 35 минут, 55 секунд (2.06.2009 - 08:05) Alehandr написал(а):
Понятно. Я как-то упустил то, что можно разные использовать и всегда юзаю /, привычка...
Быстрый ответ:

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