我有一个包含许多字符的字符串,我需要从中获取数据。 首先,我确实用';'进行了爆炸,现在我有一个数组,每行都有一个单词用于引号。
我想删除所有内容,而不是将这个单词删除为引号。我知道使用preg_match更容易获得这些单词,但是如何进入数组,再次保存以重新遍历数组,我想用preg_replace直接清理它。
$array = explode(';', $string);
//36 => string 's:7:"trans_1"' (length=13)
//37 => string 's:3:"104"' (length=9)
//38 => string 's:5:"addup"' (length=11)
//39 => string 's:1:"0"' (length=7)
$array = preg_replace('! !i', '', $array);
我想获得:
//36 => string 'trans_1' (length=6)
//37 => string '104' (length=3)
//38 => string 'addup' (length=5)
//39 => string '0' (length=1)
我尝试了不同的东西,但我无法摆脱引号之外的字母。
答案 0 :(得分:2)
你可以尝试
preg_replace('!.*"([^"]*)".*!i', '\1', $array);
\1
指的是第一个被捕获的群体!
答案 1 :(得分:2)
虽然这不是您问题的直接答案,但它可以解决您的问题。您正在查看的数据来自php函数serialize()
,以便从您需要使用php函数unserialize()
的字符串中检索数据。
$data = unserialize($string);