首页 > 解决方案 > 在大写字母后添加句点,后跟空格

问题描述

正如标题所说,有一个字符串,我想在任何大写字母后添加一个句点,后跟一个空格,例如:

"Smith S Kohli V "

会成为:

"Smith S. Kohli V. "

这和我得到的一样接近:

v <- c("Smith S Kohli V ")
stringr::str_replace_all(v, "[[:upper:]] ", ". ")

"Smith . Kohli . "

我可以看到我需要添加更多代码来保留大写字母,但我无法弄清楚,非常感谢任何帮助。

标签: rregexstringr

解决方案


您可以通过这种方式捕获大写字母后跟空格( )字符的匹配,然后将整个匹配替换为额外的dot(.).

v <- c("Smith S Kohli V ")
stringr::str_replace_all(v, "([A-Z](?= ))", "\\1.")

正则表达式: https ://regex101.com/r/uriEYS/1

演示: https ://rextester.com/ELKM47734


推荐阅读