正则表达式,匹配两个标签中所有的字符该怎么写?

preg_match("/\[LoopID=\"\w{1,10}\"\][.\s]*[^\[\]][.\s]*\[\/Loop\]/",$this->ReplaceHTM... preg_match("/\[Loop ID=\"\w{1,10}\"\][.\s]*[^\[\]][.\s]*\[\/Loop\]/",$this->ReplaceHTML,$ArrLabel);

我是想匹配关于[Loop ID=""]和[/Loop]之间的所有字符,包括回车、换行之类的,但是不能包括中括号。我上面写的,运行不通啊,正确该怎么写?
展开
 我来答
Zjmainstay
推荐于2016-08-22 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
<?php
    $str = '
    [Loop ID="id-10"]
    什么都行
    换行也行
           
    [/Loop]
    ';
    //[\s\S]可匹配任意字符,包括换行。下面忽略ID值的,需要自己修改或追问
    preg_match('#\[Loop[\s\S]*?\]([\s\S]*?)\[/Loop\]#i',$str,$m);
           
    echo '<pre>';
    var_dump($m);
//End_php
追问
/\[Loop\sID=\"\w{1,10}\"\][.\s]*[^\[\]]*[.\s]*\[\/Loop\]/
用笨方法憋了半天还是解决排除万难了。不过还是有个问题问你,你的代码中*号后面的问题代表的是什么意思?看到有这样写的,但不太理解。另外#号是定界符吧?这个定界符用什么符号都可以吗?后面跟的i是某种选项参数吗?
追答
<?php
    ini_set('display_errors','on');
    error_reporting(E_ALL);
    $str = '
    [Loop ID="id-10"]
    什么都行
    换行也行
       
    [/Loop]
    ';
       
    /*      //注释这句即可显示加了 "[" 的$str,它会覆盖上面的$str;
    $str = '
    [Loop ID="id-10"]
    什么都行
    换行也行
    [ 这个匹配值为空
    [/Loop]
    ';
     // */
    // (?!\[Loop[\s\S]*?\][\s\S]*?(?:\[|\])[\s\S]*?\[/Loop\])  排除[Loop..] [/Loop] 之间有“[”或者“]”的情况
    //([\s\S]*?) 匹配[Loop..] [/Loop]之间的任意字符,包括换行,并且提取,$m[1]即可得到相应的值
    // preg_match('#(?!\[Loop[\s\S]*?\][\s\S]*?(?:\[|\])[\s\S]*?\[/Loop\])\[Loop[\s\S]*?\]([\s\S]*?)\[/Loop\]#i',$str,$m);
       
    //用直接排除[和]的其他字符也能满足你的需求
    preg_match('#\[Loop[\s\S]*?\]([^\[\]]*?)\[/Loop\]#i',$str,$m);
       
       
    echo '<pre>';
    var_dump($m);
       
    //正则介绍:
    // *表示匹配0个或多个
    // ?表示0个或1个,即要么有,要么没有
    // # 分界符,在PHP里面,特殊字符“都”(需要你亲测,我一般用#,|,@)能当分界符,前后呼应即可。特别的,匹配HTML时因为可能存在/,因此用非/即不需要对/转义为"\/"
    // i 模式修正符,表示忽略大小写,有好几个的,自己查资料,比如e,s等
//End_php
梦里寻你我他
2013-05-17 · TA获得超过2199个赞
知道大有可为答主
回答量:2171
采纳率:42%
帮助的人:1208万
展开全部
\[Loop\sID=\"[\w\s]*?\"\](?<val>([\w\s]*?))\[\/Loop\]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式