Ber*_*riJ 2 regex replace r match
假设你有一个字符串:“Stack- Overflow”
我想小写前面带有破折号和空格的大写字符,并删除破折号和空格。
到目前为止,我能够使用正则表达式来匹配模式。但是我如何才能在不手动执行此操作的情况下小写该字符呢?
c("Stack- Overflow") %>% str_replace_all("-\\s[A-Z]", "o")
Run Code Online (Sandbox Code Playgroud)
太感谢了。
您可以gsub像perl=TRUE这样使用:
c("Stack- Overflow") %>% gsub(pattern="-\\s+([A-Z])", replacement="\\L\\1", perl=TRUE)
[1] "Stackoverflow"
Run Code Online (Sandbox Code Playgroud)
细节
-- 匹配连字符\\s+- 1 个或多个空格([A-Z])- 捕获组 1:任何 ASCII 大写字母是\\L小写运算符,它将其右侧的所有文本转为小写,直到\\E遇到运算符为止(此处省略它,因为整个替换文本必须转为小写)。