正则表达式从头到尾抓住n个字符
发布时间:2020-12-14 06:24:12 所属栏目:百科 来源:网络整理
导读:我真的花时间学习正则表达式,我正在玩不同的玩具场景.我无法工作的一个设置是从字符串的开头抓取到n出现的字符,其中n 1. 在这里,我可以从字符串的开头抓到第一个下划线,但我不能将其概括为第二个或第三个下划线. x - c("a_b_c_d","1_2_3_4","_?_._:")gsub("_
我真的花时间学习正则表达式,我正在玩不同的玩具场景.我无法工作的一个设置是从字符串的开头抓取到n出现的字符,其中n> 1.
在这里,我可以从字符串的开头抓到第一个下划线,但我不能将其概括为第二个或第三个下划线. x <- c("a_b_c_d","1_2_3_4","<_?_._:") gsub("_.*$","",x) Here's what I'm trying to achieve with regex. (`sub`/`gsub`): ## > sapply(lapply(strsplit(x,"_"),"[",1:2),paste,collapse="_") ## [1] "a_b" "1_2" "<_?" #or ## > sapply(lapply(strsplit(x,1:3),collapse="_") ## [1] "a_b_c" "1_2_3" "<_?_." 相关文章:regex from first character to the end of the string
怎么样:
gsub('^(.+_.+?).*$','1',x) # [1] "a_b" "1_2" "<_?" 或者,您可以使用{}来表示重复次数…… sub('((.+_){1}.+?).*$',x) # {0} will give "a",{1} - "a_b",{2} - "a_b_c" and so on 所以如果你想匹配第n个,你就不必重复自己…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |