Помогите с preg match и избежанием угловых скобок! - PullRequest
1 голос
/ 04 августа 2011

Я попробовал несколько способов сделать это, основываясь на страницах руководства, но, похоже, я не могу понять это правильно, не совсем так ..

Чтобы найти и заменить это, от частискоро будет выведен ..

<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmb]
<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmf] 

С шаблоном, подобным этому:

[dailymotion + ] + <!--nextpage--><!--tab_title:DAILYMOTION--> 

Чтобы затем удалить ...

<!--nextpage--><!--tab_title:DAILYMOTION--> 

Так, чтобыон выводит:

<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmb]
[dailymotion xkbbmf] 

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

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

Как говорит Марк в комментариях, лучше использовать DOM, но, черт возьми, я попробую

$output = preg_replace("~(\[dailymotion [^\]]+\])\s*<!--nextpage--><!--tab_title:DAILYMOTION-->~", "$1", $input);
0 голосов
/ 04 августа 2011

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

preg_replace("#\[dailymotion .+?\](\<!--nextpage--\>\<\!--tab_title\:DAILYMOTION--\>)#s",'',$string);
...