用下划线替换两个大写字母之间的空格 space
Replacing a blank space between two capital letters with an underscore
我的字符串中的字符如下所示:
" A E 222;CMPSC 201 orCMPSC 202"
我想做的是让它看起来像这样:
" A_E_222;CMPSC_201 orCMPSC_202"
到目前为止,我尝试了以下代码,但它只在前面或后面放置了一个下划线,所以我不确定还能尝试什么。
str_replace_all(x, "([A-Z][:blank:][A-Z])", "\1_")
str_replace_all(x, "([A-Z][:blank:][:digit:])", "([A-Z][:digit:])")
我们可以使用正则表达式环视来匹配大写字母((?<=[A-Z])
)后跟大写字母或数字((?=[A-Z0-9])
)的space,将其替换为_
gsub("(?<=[A-Z]) (?=[A-Z0-9])", "_", v1, perl = TRUE)
#[1] " A_E_222;CMPSC_201 orCMPSC_202"
我的字符串中的字符如下所示:
" A E 222;CMPSC 201 orCMPSC 202"
我想做的是让它看起来像这样:
" A_E_222;CMPSC_201 orCMPSC_202"
到目前为止,我尝试了以下代码,但它只在前面或后面放置了一个下划线,所以我不确定还能尝试什么。
str_replace_all(x, "([A-Z][:blank:][A-Z])", "\1_")
str_replace_all(x, "([A-Z][:blank:][:digit:])", "([A-Z][:digit:])")
我们可以使用正则表达式环视来匹配大写字母((?<=[A-Z])
)后跟大写字母或数字((?=[A-Z0-9])
)的space,将其替换为_
gsub("(?<=[A-Z]) (?=[A-Z0-9])", "_", v1, perl = TRUE)
#[1] " A_E_222;CMPSC_201 orCMPSC_202"