正则问题

cebs 2009-12-10 03:32:25
有数据
a1:内容1,a2:内容2,a3:内容3,a4:内容4,a5:内容5,a6:内容6,

能否根据指定的a1取得内容1
a2的话就取内容2
.............
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cebs 2009-12-10
  • 打赏
  • 举报
回复
嗯是啊
foolbirdflyfirst 2009-12-10
  • 打赏
  • 举报
回复
你这是多次取,不应该用正则,不然每次取相关内容都要遍历一次字符串。

$str = 'a1:内容1,a2:内容2,a3:内容3,a4:内容4,a5:内容5,a6:内容6,';

$data = explode(',',$str);
foreach($data as $k=>$v)
{
list($k2,$v2) = explode(':',$v);
$dataArray[$k2] = $v2;
}


echo $dataArray['a6'];//内容6
echo $dataArray['a2'];//内容2
cebs 2009-12-10
  • 打赏
  • 举报
回复
字符串操作?
程序猿之殇 2009-12-10
  • 打赏
  • 举报
回复
$str = "a1:内容1,a2:内容2,a3:内容3,a4:内容4,a5:内容5,a6:内容6,";

$serach = "a1";
preg_match(sprintf("/%s:([^:,]+)/i")"/",$serach),$str,$matches);
var_dump($matches[1]);

可以,但是要确定a1内容不包含一些特殊字符,否则要转义.
比如说 " ' [ ] ( )等正则的特殊字符.

不过建议还是用字符串操作来做更好些.

21,891

社区成员

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

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