Regex 用R中的正则表达式逐字拆分句子
我正在使用或我想使用R来提取一些信息。我有下面的句子,我想分开。最后,我只想提取数字24 以下是我所拥有的: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 很明显,这两个角色在某种程度上是合拍的,但我对后一个角色感兴趣,而不是前一个。感
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"