Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Регулярные выражения: выбрать из html кода все картинки за исключением первой (https://forum.antichat.xyz/showthread.php?t=178845)

kof 14.02.2010 18:34

Регулярные выражения: выбрать из html кода все картинки за исключением первой
 
Вобщем по сабжу - если такое возможно сделать одним-двумя регулярными выражениями то прошу пример.

Подробно: есть файл html из которого нужно вырезать (убрать) все картинки за исключением первой. Нужно реализовать только с использованием регулярного выражения (или двух).

UPD: Я не могу редактировать php код, но я могу отредактировать регулярное выражение которое вырезает текст.

Chaak 14.02.2010 19:19

unset($massiv[0]);

vvy 14.02.2010 19:33

Универсальный вариант (за оптимальность не ручаюсь)
Код:

var dell=false;
var reg=/<img[^>]*>/gi;
function replacer(str, p1, p2, offset, s)
{
if (!dell) { dell=true; return str;}
        else return '';
}
var new_body=document.getElementsByTagName('body')[0].innerHTML.replace(reg,replacer);
document.getElementsByTagName('body')[0].innerHTML=new_body;

Мне кажется так будет лучше, но надо дописать регулярку reg так, что б она просто не сработала на первую картинку
Код:

var reg=/<img[^>]*>/gi;
var new_body=document.getElementsByTagName('body')[0].innerHTML.replace(reg,'');
document.getElementsByTagName('body')[0].innerHTML=new_body;


kof 14.02.2010 19:45

Цитата:

Сообщение от Chaak
unset($massiv[0]);

Я не могу редактировать php код, но я могу отредактировать регулярное выражение которое вырезает текст. В топике сказано возможно-ли ТОЛЬКО регулярным выражением это сделать или нет.

kof 14.02.2010 19:56

vvy: именно регулярным выражением могу пользоваться, никакого яваскрипта и пхп не могу использовать, тоесть есть php-код в котором я могу изменить лишь регулярное выражение, а сам код изменять не могу. вот такой ребус. :(

vvy 14.02.2010 20:00

kof, а чем тебе это не вариант с регулярными выражениями? 0_о переведи на php и все.

ЗЫ А вобщето язык можно было бы и в первом посте написать.....

kof 14.02.2010 20:28

Цитата:

Сообщение от vvy
kof, а чем тебе это не вариант с регулярными выражениями? 0_о переведи на php и все.

Можно много чего, но легче использовать какую-то хитрость в регулярном вывражении если она имеется, что я и пытаюсь выяснить... ;)

Цитата:

Сообщение от vvy
ЗЫ А вобщето язык можно было бы и в первом посте написать.....

Уже написал, сорри :rolleyes:

vvy 14.02.2010 20:36

Цитата:

Сообщение от kof
хитрость в регулярном вывражении:

Регулярное выражение точно такое же как я тебе написал, но хитрость в его вызове, что б заменить текст по регулярному выражению в php есть функция preg_replace. А если регулярка вызывается функцией preg_match, к примеру, то она тебе не сможет заменить текст, она просто найдет тебе совпадения.

kof 14.02.2010 20:45

vvy: В скрипте используется preg_replace, а изменить скрипт я не могу, могу лишь изменить само регулярное выражение :(

vvy 14.02.2010 20:59

Код:

~(<img[^>]*>)~i
эта регулярка найдет все изображения, что б она не смогла увидеть первое изображение нужно ее немного дописать, опираясь на html код этой картинки, поэтому давай код или несколько примеров, если он меняется (именно первое по счету изображение выделить из всех остальных, не дописывая кода, не получится)

ЗЫ а ты можешь влиять на параметр "на что менять" в функции preg_replace?


Время: 13:51