作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(在 R 中)如何在不拆分缩写的情况下按标题大小写将字符串中的单词拆分为“We Live In CA”?
我知道如何在每个大写字母处拆分字符串,但这样做会拆分首字母缩写/缩写,例如 CA
或 USSR
甚至 U.S.A.
,我需要保留它们。
所以我在想某种逻辑类型,例如如果字符串中的单词不是首字母缩写词,则用空格分隔单词,其中小写字符后跟大写字符
。
我下面的代码片段用大写字母拆分带空格的单词,但它打破了像 CA
这样的首字母缩写词,不合需要地变成了 C A
。
s <- "WeLiveInCA"
trimws(gsub('([[:upper:]])', ' \\1', s))
# "We Live In C A"
或者另一个例子...
s <- c("IDon'tEatKittensFYI", "YouKnowYourABCs")
trimws(gsub('([[:upper:]])', ' \\1', s))
# "I Don't Eat Kittens F Y I" "You Know Your A B Cs"
我想要的结果是:
"We Live In CA"
#
"I Don't Eat Kittens FYI" "You Know Your ABCs"
但这需要广泛适用(不仅仅是我的例子)
最佳答案
尝试使用基础 R gregexpr/regmatches
。
s <- c("WeLiveInCA", "IDon'tEatKittensFYI", "YouKnowYourABCs")
regmatches(s, gregexpr('[[:upper:]]+[^[:upper:]]*', s))
#[[1]]
#[1] "We" "Live" "In" "CA"
#
#[[2]]
#[1] "IDon't" "Eat" "Kittens" "FYI"
#
#[[3]]
#[1] "You" "Know" "Your" "ABCs"
解释。
[[:upper:]]+
匹配一个或多个大写字母;[^[:upper:]]*
匹配除大写字母外的零次或多次出现。关于r - (在 R 中)如何在保留缩写的情况下将 "WeLiveInCA"之类的字符串中的单词按标题大小写拆分为 "We Live In CA"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55873191/
(在 R 中)如何在不拆分缩写的情况下按标题大小写将字符串中的单词拆分为“We Live In CA”? 我知道如何在每个大写字母处拆分字符串,但这样做会拆分首字母缩写/缩写,例如 CA 或 USSR
我是一名优秀的程序员,十分优秀!