我有一个从JSON转换而来的数据表,其中一列的行看起来像是字符类:
select *
from SearchRecord sr1
where
id between [Id:] / 10000 * 10000 - 9999 and [Id:] / 10000 * 10000 + 10005
and (select count(*) from SearchRecord sr2 where sr2.id between sr1.id and [Id:]) <= 6
and (select count(*) from SearchRecord sr3 where sr3.id between [Id:] and sr1.id) <= 6
我真正想要的是objectId的矢量,所以理想情况下我会得到:
"[{u'className': u'Sticker', u'__type': u'Pointer', u'objectId': u'mYz1ietNEt'}, {u'className': u'Sticker', u'__type': u'Pointer', u'objectId': u'FVn0hE5Zar'}, {u'className': u'Sticker', u'__type': u'Pointer', u'objectId': u'ZxUTYYCunL'}]"
到达那里最好的方法是什么?或者我怎么去那里?对于单个字符串['mYz1ietNEt', 'FVn0hE5Zar', 'ZxUTYYCunL']
,这是我尝试过的内容:
test
那很好,但我似乎无法找到摆脱左括号test1 = strsplit(test, split = "}, ")
test1 = test1[[1]]
的方法,更不用说字符串的其他部分是不合需要的了。
{
理想情况下,我可以找到一些正则表达式,可以一举将所有> test2 = strsplit(test1, "{")
Error in strsplit(test1, "{") :
invalid regular expression '{', reason 'Missing '}''
> test2 = strsplit(test1, "\{")
Error: '\{' is an unrecognized escape in character string starting ""\{"
> test2 = strsplit(test1, u"{")
Error: unexpected string constant in "test2 = strsplit(test1, u"{""
> test2 = strsplit(test1, r"{")
Error: unexpected string constant in "test2 = strsplit(test1, r"{""
字段提取到一个向量中。有这样的事吗?
答案 0 :(得分:0)
我们可以使用正则表达式模式提取已识别的字符串:
library(stringr)
str_extract_all(test1, "(?<=objectId':\\su')(.*?)(?=')")[[1]]
[1] "mYz1ietNEt" "FVn0hE5Zar" "ZxUTYYCunL"