我对正则表达式语法仍然有点困惑。你能帮我解决这些模式吗:
_A00_A1234B_
_A00_A12345B_
_A1_A12345_
到目前为止我的方法:
vapply(strsplit(files, "[_.]"), function(files) files[nchar(files) == 7][1], character(1))
or
str_extract(str2, "[A-Z][0-9]{5}[A-Z]")
预期产出是
A1234B
A12345B
A12345
Thanks!
你可以试试
library(stringr)
str_extract(str2, "[A-Z][0-9]{4,5}[A-Z]?")
#[1] "A1234B" "A12345B" "A12345"
在这里,该模式寻找大写字母[A-Z]
, 其次是4
或 5 位数字[0-9]{4,5}
,后跟一个大写字母[A-Z]
?
或者你可以使用stringi
哪个会更快
library(stringi)
stri_extract(str2, regex="[A-Z][0-9]{4,5}[A-Z]?")
#[1] "A1234B" "A12345B" "A12345"
Or a base R
选项是
regmatches(str2,regexpr('[A-Z][0-9]{4,5}[A-Z]?', str2))
#[1] "A1234B" "A12345B" "A12345"
data
str2 <- c('_A00_A1234B_', '_A00_A12345B_', '_A1_A12345_')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)