【发布时间】:2019-05-10 04:00:34
【问题描述】:
我有以下字符串:
x = "marchTextIWantToDisplayWithSpacesmarch"
我想删除字符串开头的 'march' 部分,然后在其余部分的每个大写字母之前添加一个空格,以产生以下结果:
"Text I Want To Display With Spacesmarch"
为了插入空白,我使用了gsub("([a-z]?)([A-Z])", "\\1 \\2", x, perl= T),但我不知道如何修改模式,以便从返回的字符串中排除第一个 'march'。我正在努力在这方面做得更好,所以任何帮助都将不胜感激。
【问题讨论】:
-
您可以使用一个正则表达式,但要使用
trimws:trimws(gsub("^\\p{Ll}+|(?!^)(?=\\p{Lu})", " ", x, perl=TRUE))。或者,您可以使用类似的正则表达式和回调对stringr::str_replace_all进行一次调用(此处需要一些自定义替换逻辑)。
标签: r regex regex-lookarounds