Php 帮助进行预匹配和转义角括号!
根据手册的内容,我尝试了几种方法来实现这一点,但我似乎做得不对,至少不是很好 要查找并替换此项,请从即将输出的部分Php 帮助进行预匹配和转义角括号!,php,preg-replace,pattern-matching,brackets,Php,Preg Replace,Pattern Matching,Brackets,根据手册的内容,我尝试了几种方法来实现这一点,但我似乎做得不对,至少不是很好 要查找并替换此项,请从即将输出的部分 <!--nextpage--><!--tab_title:DAILYMOTION--> [dailymotion xkbbmb] <!--nextpage--><!--tab_title:DAILYMOTION--> [dailymotion xkbbmf] [每日动态xkbbmb] [每日动态xkbbmf] 使用类似于此的模
<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmb]
<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmf]
[每日动态xkbbmb]
[每日动态xkbbmf]
使用类似于此的模式:
[dailymotion + ] + <!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion+]
然后删除
<!--nextpage--><!--tab_title:DAILYMOTION-->
使其输出:
<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmb]
[dailymotion xkbbmf]
[每日动态xkbbmb]
[每日动态xkbbmf]
我发现尖括号是很难处理的,所以我想知道是否有正则表达式语法可以只替换左边的一个字符--下一页--在右边,我想把整件事处理掉。有更好的方法吗?我想你只需要避开尖括号,就可以了
preg_replace("#\[dailymotion .+?\](\<!--nextpage--\>\<\!--tab_title\:DAILYMOTION--\>)#s",'',$string);
preg\u replace(\[dailymotion.+?\])(\就像Marc在评论中说的那样,使用DOM更好,但是见鬼,我会尝试一下
$output = preg_replace("~(\[dailymotion [^\]]+\])\s*<!--nextpage--><!--tab_title:DAILYMOTION-->~", "$1", $input);
$output=preg\u replace(“~(\[dailymotion[^\]]+\])\s*~,“$1”,“$input”);
什么是正则表达式?无法理解您在这里尝试的是什么。“尖括号”在正则表达式中不是特殊字符(至少在您进入更高级的向前看和向后看之前是如此)。但方括号[和]表示类似于[a-z]的字符组是从a到z的所有字符。如果这是HTML,那么不要使用正则表达式。你只会击中自己的脚。使用DOM().不确定正则表达式..也不确定我在这里尝试的是什么…我被引导相信它们是..大部分代码是PHP,只是其中一部分的最终输出是HTML/PHP。这似乎真的可以工作,忘记了转义!但我忘了提到[dailymotion.+?]前面的\n还有什么可以逃避的吗?preg\u replace(“#\n\[dailymotion.+?\”)(\Ah,您应该添加s
修饰符(在#之后)以包含换行符作为空白。