Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 帮助进行预匹配和转义角括号!_Php_Preg Replace_Pattern Matching_Brackets - Fatal编程技术网

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
修饰符(在#之后)以包含换行符作为空白。