在大写字母后加一个句点,后跟白色 space
Add a period after capital letters followed by a white space
正如标题所说,有一个字符串,我想在任何大写字母后跟一个空格后添加一个句点,例如:
"Smith S Kohli V "
会变成:
"Smith S. Kohli V. "
这是我得到的最接近的结果:
v <- c("Smith S Kohli V ")
stringr::str_replace_all(v, "[[:upper:]] ", ". ")
"Smith . Kohli . "
我知道我需要添加更多代码来保留大写字母,但我无法弄明白,非常感谢任何帮助。
您可以通过这种方式捕获大写字母后跟 space(
) 字符的匹配项,然后用额外的 dot(.)
.[= 替换整个匹配项15=]
v <- c("Smith S Kohli V ")
stringr::str_replace_all(v, "([A-Z](?= ))", "\1.")
基础 R 使用 gsub
:
v <- c("Smith S Kohli V ")
gsub('([A-Z])\s', '\1. ', v)
#[1] "Smith S. Kohli V. "
使用base R
gsub("(?<=[A-Z])\s", ". ", v, perl = TRUE)
#[1] "Smith S. Kohli V. "
数据
v <- c("Smith S Kohli V ")
正如标题所说,有一个字符串,我想在任何大写字母后跟一个空格后添加一个句点,例如:
"Smith S Kohli V "
会变成:
"Smith S. Kohli V. "
这是我得到的最接近的结果:
v <- c("Smith S Kohli V ")
stringr::str_replace_all(v, "[[:upper:]] ", ". ")
"Smith . Kohli . "
我知道我需要添加更多代码来保留大写字母,但我无法弄明白,非常感谢任何帮助。
您可以通过这种方式捕获大写字母后跟 space(
) 字符的匹配项,然后用额外的 dot(.)
.[= 替换整个匹配项15=]
v <- c("Smith S Kohli V ")
stringr::str_replace_all(v, "([A-Z](?= ))", "\1.")
基础 R 使用 gsub
:
v <- c("Smith S Kohli V ")
gsub('([A-Z])\s', '\1. ', v)
#[1] "Smith S. Kohli V. "
使用base R
gsub("(?<=[A-Z])\s", ". ", v, perl = TRUE)
#[1] "Smith S. Kohli V. "
数据
v <- c("Smith S Kohli V ")