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


Saving strings in quotes (") using regex

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

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

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

只要双引号匹配,下面的调用

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

将为您提供引号之间的所有文本,作为$matches[1]

中的字符串数组。
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));

这个应该可以。