使用正则表达式将字符串保存在引号(“)中

时间:2013-04-23 16:02:14

标签: php regex

我有一个看起来像a:104:{i:143;a:5:{s:5:"naz";s:7:"Alb";s:10:"base"}}的简单字符串,我想用引号清除所有文本,清除像s:5这样的东西和使用正则表达式的东西。这可能吗?

3 个答案:

答案 0 :(得分:1)

希望获得引号之间的所有内容?使用:".*"作为搜索字符串(根据需要转义"个字符)

..您还可以查看http://www.zytrax.com/tech/web/regex.htm以获取有关正则表达式的更多帮助。 (它有一个很好的工具,你可以测试输入文本,RE,看看你得到了什么)

答案 1 :(得分:0)

只要匹配双引号,就可以进行以下调用

preg_match_all('/"([^"]*)"/',$input_string,$matches);

会在$matches[1]

中为您提供引号之间的所有文字作为字符串数组

答案 2 :(得分: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));

这应该可以胜任。