【发布时间】:2017-05-03 01:40:55
【问题描述】:
我试图在每个大写字母前加上下划线,然后是小写字母。示例如下:
cases <- c("XrefAcctnoAcctID", "NewXref1AcctID", "NewXref2AcctID", "ClientNo")
我有这个:
[1] "XrefAcctnoAcctID" "NewXref1AcctID"
[3] "NewXref2AcctID" "ClientNo"
我想要这个:
"xref_acctno_acct_id"
"new_xref1_acct_id"
"new_xref2_acct_id"
"client_no"
我能走这么远:
> tolower(gsub("([a-z])([A-Z])", "\\1_\\2", cases))
[1] "xref_acctno_acct_id" "new_xref1acct_id"
[3] "new_xref2acct_id" "client_no"
但是"new_xref1acct_id" "new_xref2acct_id" 并不能反映我想要的。
【问题讨论】:
-
只需在您的正则表达式中将
[a-z]更改为[a-z0-9]以匹配大写字母之前的小写字母或数字。或更改为(.)([A-Z])以匹配大写字母之前的任何内容。