我有一些类似于JSON文件的字符串:
string <- "{'text': u'@RobertTekieli @Czerniakowianka @1234Mania mysle, ze nie weszlabym do zadnego wiezienia bez straznikow', 'created_at': u'Tue May 20 08:16:55 +0000 2014'}"
我想提取两个字符串 - 在text
和created_at
@RobertTekieli @Czerniakowianka @1234Mania mysle, ze nie weszlabym do zadnego wiezienia bez straznikow
和
Tue May 20 08:16:55 +0000 2014
我想用正则表达式而不是fromJSON
函数或类似的东西来做。但实际上我不知道如何。有什么建议吗?
答案 0 :(得分:2)
使用\K
放弃先前在匹配时打印的匹配字符。 \K
使文本与整个正则表达式匹配保持匹配。
> string <- "{'text': u'@RobertTekieli @Czerniakowianka @1234Mania mysle, ze nie weszlabym do zadnego wiezienia bez straznikow', 'created_at': u'Tue May 20 08:16:55 +0000 2014'}"
> m <- gregexpr("'(?:text|created_at)':\\s+u'\\K[^']*", string, perl=TRUE)
> regmatches(string, m)
[[1]]
[1] "@RobertTekieli @Czerniakowianka @1234Mania mysle, ze nie weszlabym do zadnego wiezienia bez straznikow"
[2] "Tue May 20 08:16:55 +0000 2014"
或强>
> library(stringr)
> str_extract_all(string, perl("'(?:text|created_at)':\\s+u'\\K[^']*"))[[1]]
[1] "@RobertTekieli @Czerniakowianka @1234Mania mysle, ze nie weszlabym do zadnego wiezienia bez straznikow"
[2] "Tue May 20 08:16:55 +0000 2014"
答案 1 :(得分:2)