我有一个看起来像的简单字符串,a:104:{i:143;a:5:{s:5:"naz";s:7:"Alb";s:10:"base"}}
我想将所有文本保存在引号中s:5
,使用正则表达式清除它的内容。这可能吗?
问问题
74 次
3 回答
1
想要获取引号之间的所有内容吗?使用:".*"
作为您的搜索字符串(根据需要转义"
字符)
..您也可以查看http://www.zytrax.com/tech/web/regex.htm以获得更多关于正则表达式的帮助。(它有一个很棒的工具,您可以在其中测试输入文本、RE,并查看结果)
于 2013-04-23T16:21:14.210 回答
0
只要匹配双引号,下面的调用
preg_match_all('/"([^"]*)"/',$input_string,$matches);
将为您提供引号之间的所有文本作为字符串数组$matches[1]
于 2013-04-23T16:24:15.957 回答
0
function session_raw_decode ($data) {
$vars = preg_split('/([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff^|]*)\|/', $data, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$result = array();
for($i = 0; isset($vars[$i]); $i++)
$result[$vars[$i++]] = unserialize($vars[$i]);
return $result;
}
我在我的服务器上的某个地方找到了这个片段......(不知道它在哪里,或者我自己写的)
您可以使用它并执行以下操作:
$json = json_encode(session_raw_decode($string));
这应该可以完成这项工作。
于 2013-04-23T16:28:05.723 回答