字符是这样的
文本里有多条这样的规则,我想找出来,把相应文本取出来
{list=[my_name_007],[*,name,top],[1=1,2=2,abc=cde],[my name is cc, aa bb cc],[0],[0]}
<li>abc,def=</li>
{listend}
文章里有上面这样的字符很多个,帮我找出来
我写的表达式找不出来,郁闷了
$pattern = '/^\{list=\[([\w]+)\],\[([\w.\*]+)\],\[([\w.=]+)\],\[([\w.]+)\],\[([\d]*)\],\[([\d]*)\]\}([\w\s.]*)\{listend\}$/';
这是我最后一次测试用的,我改过很多次了,都没改对,,大家帮我取出中括号里的值和
{list=???}之间的html代码{listend}的字符
------------------------------------------------
{list=[字母 下划线 和数字],[*号和下划线和字母和逗号],[逗号 等号= 不等号!=大小于号<> 字母 字数 下划线],[字母数字下划线空格逗号],[数字],[数字]}
这里是html字符网页用的所有可能的字符,包括中英文,等其它符号
{listend}
preg_replace $1 $2 $3 $4 $5 $6 $7
都有值的,,帮帮我,,
感谢感谢,,先谢谢,,谢谢强大的博客园,谢谢威武的程序大哥....
$sStr = '{list=[my_name_007],[*,name,top],[1=1,2=2,abc=cde],[my name is cc, aa bb cc],[0],[0],[nange]}
<li>abc,def=</li>
<li>dsdsdas924049081_1=*34</li>
<li>nange_nange</li>{listend}';
//匹配整个$sStr
preg_match_all('/^{list=.+}?\n?(.*\n?)*.*?{listend}/', $sStr, $arMatches);
print_r($arMatches);
if($arMatches[0])
{
//匹配[....]中的内容
preg_match_all('/(\[[a-zA-Z0-9_*= ,]+\]),?\1?/', $sStr, $arMatches1);
print_r($arMatches1[1]);
//匹配<li>.....</li>
preg_match_all('/<[a-zA-Z]+>(.*)<\/[a-zA-Z]+>/',$sStr, $arMatches2);
print_r($arMatches2[1]);
}
运行结果
Array
(
[0] => Array
(
[0] => {list=[my_name_007],[*,name,top],[1=1,2=2,abc=cde],[my name is cc, aa bb cc],[0],[0],[nange]}
<li>abc,def=</li>
<li>dsdsdas924049081_1=*34</li>
<li>nange_nange</li>{listend}
)
[1] => Array
(
[0] =>
)
)
Array
(
[0] => [my_name_007]
[1] => [*,name,top]
[2] => [1=1,2=2,abc=cde]
[3] => [my name is cc, aa bb cc]
[4] => [0]
[5] => [nange]
)
Array
(
[0] => abc,def=
[1] => dsdsdas924049081_1=*34
[2] => nange_nange
)
估计这样,你在研究一下
\{list=\[(\w+)\],\[(\*(,\w+)*)\],\[(\w+=\w+)(,\w+=\w+)*\],\[([\s\S]+(,[\s\S]+)*)\],\[(\d+)\],\[(\d+)\]\}(.*?)\{listend\}
呜呜,,没通过,,,还要继续改,继续调试
类似于如下的结果????
是的,要的是一个值一个值 的,,不要逗号连一起
那个<li>中英文基dfef@#$^#*%)(^_!%#@$^^&</li>
那个<li>中英文基dfef@#$^#*%)(^_!%#@$^^&</li>
@女子100: 。。。。
^\{list=\[(.+)\],\[(.+)\],\[(.+)\],\[(.+)\],\[(.+)\],\[(.+)\]\}\<\.+\>(.+)\</\w+\>\{listend\}$
试试看,我用的c#测试的
你的正则错了吧。这么多[]括号