首页 > 解决方案 > 仅在 R 中的边界内替换特定字符

问题描述

如何仅在特定字符伴随其他字符时才替换特定字符而不消除后者?

例如

x <- "Elena has u$s 10,000. She's married.But she's not happy.Her husband's not happy either."

gsub("([a-z])\\.+([A-Z])", ". ", x)

#[1] "Elena has u$s 10,000. She's marrie. ut she's not happ. er husband's not happy either."

这样我就失去了点之前的字符和点之后的字符

我希望我的结果如下:

#[1] "Elena has u$s 10,000. She's married. But she's not happy. Her husband's not happy either."

标签: rregex

解决方案


我们可以使用积极的前瞻正则表达式。

gsub("([a-z]\\.)(?=[A-Z])", "\\1 ", x, perl = TRUE)
#[1] "Elena has u$s 10,000. She's married. But she's not happy. Her husband's not happy either."

推荐阅读