php: удаление слов с помощью регулярного выражения - PullRequest
0 голосов
/ 24 апреля 2010

Я хочу удалить выражения следующего типа из моего скрипта.

<a any text here>nothing or space here</a>

Я могу сделать это с помощью трех функций, но я думаю, что есть более короткий путь. не могли бы вы помочь мне? заранее спасибо

Ответы [ 3 ]

2 голосов
/ 24 апреля 2010

Будет preg_replace('/<a(.*?)>\s*<\/a>/', '', $str) работать?

РЕДАКТИРОВАТЬ: Алан Мур прав.

0 голосов
/ 24 апреля 2010
$text = '<a any text here>nothing or space here</a>';
$rep = '';
$pat = '|<a[^>]*>\S*</a>|';
echo preg_replace($pat,$rep,$text);

РЕДАКТИРОВАТЬ: неправильный

$text = '<a any text here>nothing or space here</a>';
$rep = '<a>\1</a>';
$pat = '|<a[^>]*>([^<]*)</a>|';
echo preg_replace($pat,$rep,$text);
0 голосов
/ 24 апреля 2010

Взято из http://www.regular -expressions.info / php.html :

mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit]) возвращает строку, в которой все совпадения шаблона регулярного выражения в строке темы заменены строкой замены.

Максимально возможны замены. Одно ключевое отличие состоит в том, что все параметры, кроме предела, могут быть массивами, а не строками.

В этом случае preg_replace выполняет свою работу несколько раз, перебирая элементы в массивах одновременно. Вы также можете использовать строки для некоторых параметров и массивы для других. Затем функция будет перебирать массивы и использовать одни и те же строки для каждой итерации. Использование массива шаблона и замены, позволяет выполнять последовательность операций поиска и замены над одной строкой темы. Использование массива для строки темы позволяет выполнять один и тот же поиск и замену множества строк темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...