我可以使用一些帮助来为这个字典字符串编写正则表达式(我不经常使用它们)。
这是字符串字典的示例:
O:8:"stdClass":5:{s:4:"sent";i:0;s:6:"graded";i:0;s:5:"score";i:0;s:6:"answer";s:14:"<p>Johnson</p>";s:8:"response";s:0:"";}
我想从字符串字典中提取 Johnson。
任何帮助将不胜感激,谢谢。
这是一个 PHP序列化对象。不要使用正则表达式。unserialize()
数据并answer
相应地显示属性。
unserialize($data);
echo $data->answer;
$str = 'O:8:"stdClass":5:{s:4:"sent";i:0;s:6:"graded";i:0;s:5:"score";i:0;s:6:"answer";s:14:"<p>Johnson</p>";s:8:"response";s:0:"";}';
$obj = unserialize($str);
echo $obj->answer;
这将是正确的答案,不需要正则表达式。如果您想<p>
删除标签,您可能需要一些额外的 HTML 解析。如果格式将始终保持不变(只有这样!),只需删除<p>
and</p>
标签。
看起来您应该unserialize()
改用它,然后您可以使用 preg_match 删除<p>
标签。
$obj = (unserialize('O:8:"stdClass":5:{s:4:"sent";i:0;s:6:"graded";i:0;s:5:"score";i:0;s:6:"answer";s:14:"<p>Johnson</p>";s:8:"response";s:0:"";}'));
preg_match('~<p>([^<]*)</p>~', $obj->answer, $ans);
print_r($ans[1]); //prints Johnson