我有以下正则表达式,我想抓住从句子开头到第一个句子的所有内容##
.我可以使用strsplit
我演示来完成这项任务,但我更喜欢一个gsub
解决方案.如果gusub
不是正确的工具(我认为是),我更喜欢基础解决方案,因为我想学习基础正则表达式工具.
x <- "gfd gdr tsvfvetrv erv tevgergre ## vev fe ## vgrrgf"
strsplit(x, "##")[[c(1, 1)]] #works
gsub("(.*)(##.*)", "\\1", x) #I want to work
Run Code Online (Sandbox Code Playgroud)
Jos*_*ien 14
只需添加一个字符,?
在第一个量词之后加上"非贪婪":
gsub("(.*?)(##.*)", "\\1", x)
# [1] "gfd gdr tsvfvetrv erv tevgergre "
Run Code Online (Sandbox Code Playgroud)
这是相关的文档,来自 ?regex
默认情况下,重复是贪婪的,因此使用最大可能的重复次数.可以通过附加'?'将其更改为'minimal' 到量词.
归档时间: |
|
查看次数: |
7335 次 |
最近记录: |