use*_*462 3 regex r regex-lookarounds
我有以下字符串:
x = "marchTextIWantToDisplayWithSpacesmarch"
Run Code Online (Sandbox Code Playgroud)
我想删除字符串开头的“ march”部分,然后在其余的每个大写字母之前添加一个空格,以产生以下结果:
"Text I Want To Display With Spacesmarch"
Run Code Online (Sandbox Code Playgroud)
要插入whitepace,我使用了gsub("([a-z]?)([A-Z])", "\\1 \\2", x, perl= T)但不知道如何修改模式,以便从返回的字符串中排除第一个“ march”。我正在努力做得更好,因此任何帮助将不胜感激。
一种选择是将大写字母捕获为组((...)),并在替换中创建一个空格,后跟\\1捕获组的反向引用()
gsub("([A-Z])", " \\1", x)
#[1] "march Text I Want To Display With Spacesmarch"
Run Code Online (Sandbox Code Playgroud)
如果我们需要删除“行军”
sub("\\b[a-z]\\w+\\s+", "", gsub("([A-Z])", " \\1", x))
[#1] "Text I Want To Display With Spacesmarch"
Run Code Online (Sandbox Code Playgroud)
x <- "marchTextIWantToDisplayWithSpacesmarch"
Run Code Online (Sandbox Code Playgroud)