Regex 用于数字计数R-lang的Perl正则表达式

Regex 用于数字计数R-lang的Perl正则表达式,regex,r,stringr,Regex,R,Stringr,我正在使用R和新的正则表达式: 我需要一个正则表达式来为类似json的文本提取“statuses\u count”。数据被组织到一个数据框中,每行都有文本。示例数据行: {'lang': u'en', 'profile_background_tile': False, 'statuses_count': 4414, 'description': u'Progessive,interested in the psychology of politics. 结果应该是:4414 我曾考虑将st

我正在使用R和新的正则表达式: 我需要一个正则表达式来为类似json的文本提取“statuses\u count”。数据被组织到一个数据框中,每行都有文本。示例数据行:

{'lang': u'en', 'profile_background_tile': False, 'statuses_count': 4414, 'description': u'Progessive,interested in the psychology of politics.  
结果应该是:4414

我曾考虑将str\u extract\u all与perl选项一起使用,但我不明白如何只获取“statuses\u count”后面的数字
(?在这里,我根据文章的标题使用
perl
regex

 library(stringr)
 str_extract_all(str1, perl("(?<=statuses_count': )\\d+"))[[1]]
#[1] "4414"
数据
str1在这里,我按照文章的标题使用
perl
regex

 library(stringr)
 str_extract_all(str1, perl("(?<=statuses_count': )\\d+"))[[1]]
#[1] "4414"
数据
str11)sub。没有软件包的简单解决方案

sub(".*'statuses_count': (\\d+).*", "\\1", x)
## [1] "4414"
正则表达式的可视化:

.*'statuses_count': (\d+).*
\D
'statuses_count': (\d+)

2)gsub如果我们知道字符串中没有其他数字(如示例中所示),则更容易删除非数字:

gsub("\\D", "", x)
## [1] "4414"
正则表达式的可视化:

.*'statuses_count': (\d+).*
\D
'statuses_count': (\d+)

3)Straply或straplyc此方法涉及一个相对简单的正则表达式:

library(gsubfn)
strapplyc(x, "'statuses_count': (\\d+)", simplify = TRUE)
## [1] "4414"
或者,如果需要数字输出:

strapply(x, "'statuses_count': (\\d+)", as.numeric, simplify = TRUE)
## [1] 4414
正则表达式的可视化:

.*'statuses_count': (\d+).*
\D
'statuses_count': (\d+)

注意::这些都不需要Perl正则表达式扩展。普通正则表达式可以工作。

1)sub。没有软件包的简单解决方案

sub(".*'statuses_count': (\\d+).*", "\\1", x)
## [1] "4414"
正则表达式的可视化:

.*'statuses_count': (\d+).*
\D
'statuses_count': (\d+)

2)gsub如果我们知道字符串中没有其他数字(如示例中所示),则更容易删除非数字:

gsub("\\D", "", x)
## [1] "4414"
正则表达式的可视化:

.*'statuses_count': (\d+).*
\D
'statuses_count': (\d+)

3)Straply或straplyc此方法涉及一个相对简单的正则表达式:

library(gsubfn)
strapplyc(x, "'statuses_count': (\\d+)", simplify = TRUE)
## [1] "4414"
或者,如果需要数字输出:

strapply(x, "'statuses_count': (\\d+)", as.numeric, simplify = TRUE)
## [1] 4414
正则表达式的可视化:

.*'statuses_count': (\d+).*
\D
'statuses_count': (\d+)


注意::这些都不需要Perl正则表达式扩展。普通正则表达式可以工作。

我认为最好使用
RJSONIO
jsonlite
库。我认为最好使用
RJSONIO
jsonlite
库。