我在R中使用正则表达式时遇到了一些麻烦。我使用了库字符串中的str_extract,而我的问题是:
library(stringr)
test="word1 something word2 something word3 something word3"
temp = str_extract(test,'word2.+word3')
print(temp)
## [1] "word2 something word3 something word3"
问题是我希望它在第一个单词3处停止,我不希望字符串的最后一部分。
有什么想法吗?非常感谢你
如果我有
test="word1 something word2 something1 word3 something2 word3 something3 word2 something4 word3"
而且我想保留2个大小的向量,例如“word2 something1 word3”,“word2 something4 word3”
再次感谢
最佳答案
将您的正则表达式行更改为:
temp = str_extract(test,'word2.+?word3')
^
请注意,我添加了
?
,这使得.+
不贪心(即,与捕获正则表达式中下一个术语之前的所有内容相比,捕获的内容尽可能少)。要提取所有出现的内容,请使用:
temp = str_extract_all(test,'word2.+?word3')