简单问题,php用正则过滤字符串中指定的格式并定义成数组

86y 2012-12-09 08:22:18
格式:[英文和数字,{数字}]
例如:$str="这是一张[pic,{0}]图片,这是一条描述[desc,{2}]";

将上面字符串中的“[pic,{0}]”和“[desc,{2}]”用正则过滤出来后定义成数组,然后把中括号过滤掉,变成“pic,{0}”和“desc,{2}”。

最终想得到的结果是:
$arrStr=array();
$arrStr["[pic,{0}]"]=pic,{0};
$arrStr["[desc,{2}]"]=desc,{2};

我想要的是把字符串指定的格式取出定义成数组,然后用格式给字符串赋值,这样“$arrStr[]=pic,{0};”或“$arrStr[0]=desc,{2};”不是我想要得到的结果。

数组下标的名称就是想要根据取出的格式命名的,值的话就是用正则把中括号过滤掉得出的结果
...全文
175 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TeamWei 2012-12-10
  • 打赏
  • 举报
回复
$demo='/\[([a-zA-Z\d].+?),(\{\d+\})\]/e';
86y 2012-12-09
  • 打赏
  • 举报
回复
因为那个一个格式,取出来之后我还要再判断的,如果字符串的内容是这样的:"这本书是属于[网络]类",就不符合我要取的格式了么,这样就比较麻烦了。
一起混吧 2012-12-09
  • 打赏
  • 举报
回复
需要判断干什么。你不是取出来放入数组就可以了么
86y 2012-12-09
  • 打赏
  • 举报
回复
引用 1 楼 jordan102 的回复:
PHP code?1234$str="这是一张[pic,{0}]图片,这是一条描述[desc,{2}]";$arrStr=array();preg_replace('/\[(.+?)\]/e','$arrStr["$0"]="$1"',$str);print_r($arrStr);
好像只是取出括号内的字符,少了对格式的判断:[英文和数字,{数字}]
一起混吧 2012-12-09
  • 打赏
  • 举报
回复
$str="这是一张[pic,{0}]图片,这是一条描述[desc,{2}]";
$arrStr=array();
preg_replace('/\[(.+?)\]/e','$arrStr["$0"]="$1"',$str);
print_r($arrStr);

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧