Hae*_*zer 3 regex r regex-group regex-lookarounds
如何在字符串的大写字母之前添加下划线(_),但第一个字母除外?
[1] "VarLengthMean" "VarWidthMean"
Run Code Online (Sandbox Code Playgroud)
我希望它成为:
[1] "Var_Length_Mean" "Var_Width_Mean"
Run Code Online (Sandbox Code Playgroud)
我考虑过使用str_replace_allfrom stringr,但是我不知道应该使用哪个正则表达式。
我该如何解决这个问题?
一种选择是捕捉到小写字母和下面的大写字母,然后插入_,同时添加反向引用(\\1,\\2所捕获的组)
sub("([a-z])([A-Z])", "\\1_\\2", v1)
#[1] "Var_Length" "Var_Width"
Run Code Online (Sandbox Code Playgroud)
如果还有更多实例,请使用 gsub
gsub("(?<=[a-z])(?=[A-Z])", "_", v2, perl = TRUE)
#[1] "Var_Length_Mean" "Var_Width_Mean"
Run Code Online (Sandbox Code Playgroud)
v1 <- c("VarLength", "VarWidth" )
v2 <- c("VarLengthMean", "VarWidthMean")
Run Code Online (Sandbox Code Playgroud)