2015-06-12 7 views
0

Вот что у меня до этого момента: Функция .*? занимает все до первого «этого персонажа». Например, $html = preg_replace('/alt=".*?"/', '', $html); заменяет все между alt=" и другим кавычком ничем. Моя проблема заключается в том, что мне приходится иметь дело с несколькими символами. Вот часть текста я хочу заменить:Удаление части текста с помощью регулярного выражения?

<a href="http://feeds.feedburner.com/~ff/TheWindowsClub?a=tjWEu-9hLFk:Jv9oVdSsx2A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TheWindowsClub?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWindowsClub?a=tjWEu-9hLFk:Jv9oVdSsx2A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TheWindowsClub?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWindowsClub?a=tjWEu-9hLFk:Jv9oVdSsx2A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TheWindowsClub?i=tjWEu-9hLFk:Jv9oVdSsx2A:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWindowsClub?a=tjWEu-9hLFk:Jv9oVdSsx2A:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/TheWindowsClub?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TheWindowsClub?a=tjWEu-9hLFk:Jv9oVdSsx2A:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/TheWindowsClub?d=cGdyc7Q-1BI" border="0"></img></a></div><img src="http://feeds.feedburner.com/~r/TheWindowsClub/~4/tjWEu-9hLFk" height="1" width="1" alt=""/> 

В отличие от последнего времени я не могу использовать кавычки или другой такой характер. Мне нужно удалить всю строку. Одна вещь, я думал о том, чтобы сделать что-то вроде этого:

$html = preg_replace('/<a href=".*?(alt=""/>)/', '', $html); 

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

После выполнения над строкой кода выход должен быть ничем. Он должен удалить весь этот блок кода.

+1

Я не могу следовать тому, что вы говорите, вы, кажется, ссылаетесь на какой-то предыдущий вопрос, и я не знаю, где это .. все детали должны быть здесь, которые необходимы. Покажите примеры того, какой конечный результат будет и т. Д. –

+1

Если это часть более крупного документа HTML, вам действительно нужно использовать HTML-парсер. Я не могу точно сказать, что именно вы пытаетесь заменить? Тег alt? – Cfreak

+0

Нет. Я пытаюсь заменить весь код. Я написал выше. Я редактирую код. –

ответ

1
<a\s+href.*(alt="[^"]*")?> 

или без кавычек:

<a\s+href.*(alt="[^"]*"){0,1}> 

Мы сопрягать все, что начинается на <a, не следует по крайней мере одно пространство, то любой символ, пока символ >, перед которым у вас может быть ноль или один итерация строки alt="", содержащая ничего, кроме a ".

+0

Иван, не могли бы вы объяснить код, чтобы я мог его модифицировать в будущем, если возникнет такая необходимость. Благодарю. –

+0

Я не ленив, но я настоятельно советую вам использовать веб-сайт, такой как https://regex101.com/, который будет объяснять вам все подряд за строкой;) Но я добавил небольшое объяснение и исправил ошибку! –

Смежные вопросы