Regex 用R中的正则表达式逐字拆分句子

Regex 用R中的正则表达式逐字拆分句子,regex,r,split,Regex,R,Split,我正在使用或我想使用R来提取一些信息。我有下面的句子,我想分开。最后,我只想提取数字24 以下是我所拥有的: doc <- "Hits 1 - 10 from 24" 我想提取数字24。我知道如何提取数字,一旦我可以减少命中1-10和24的句子。我试着用这个: n_docs <- unlist(str_split(key_n_docs, ".\\from"))[1] 但这给我留下了:命中率1-10 很明显,这两个角色在某种程度上是合拍的,但我对后一个角色感兴趣,而不是前一个。感

我正在使用或我想使用R来提取一些信息。我有下面的句子,我想分开。最后,我只想提取数字24

以下是我所拥有的:

doc <- "Hits  1 - 10 from 24"
我想提取数字24。我知道如何提取数字,一旦我可以减少命中1-10和24的句子。我试着用这个:

n_docs <- unlist(str_split(key_n_docs, ".\\from"))[1]
但这给我留下了:命中率1-10 很明显,这两个角色在某种程度上是合拍的,但我对后一个角色感兴趣,而不是前一个。感谢所有的帮助

通常str_split的结果将包含您在索引1处搜索的数字,但由于您使用unlist将其包装,因此似乎必须将索引增加1。使用

unlist(strsplit("Hits  1 - 10 from 24", "from"))[2]
对我来说很有魅力


如果要从单个字符串中提取:

strsplit(key_n_docs, "from")[[1]][2]
或者@BastiM使用的等效表达抱歉,我在提交我的答案后看到了你的答案

unlist(strsplit(key_n_docs, "from"))[2]

如果要从字符串向量中提取:

sapply(strsplit(key_n_docs, "from"),`[`, 2)
您可以使用str_extract from stringr:

您可以使用sub提取数字:

sub(".*from *(\\d+).*", "\\1", doc)
# [1] "24"
n_文件
numbers
"24"
sub(".*from *(\\d+).*", "\\1", doc)
# [1] "24"