gpt4 book ai didi

r - 转换为正确的大小写,除非它是 R 中的 TLA

转载 作者:行者123 更新时间:2023-12-05 04:54:48 24 4
gpt4 key购买 nike

我有一系列看起来像这样的字符值。我希望它们看起来像这样。

然而,我有一组词,当完全匹配时,它们应该保持原样。在此列表中将包含 ABC 之类的内容。

对于输入

六六十个测试对象

不包括“六”

所需的输出将是“六个六十测试对象”。

我目前的代码是这样的:

x <- gsub(paste0("(", paste(exclusions, collapse = "|"), "|\\w)(\\w*)"), "\\U\\1\\L\\2", x, perl = T)

最佳答案

这是一种方法:

x <- "SIX SIXTY TEST SUBJECT"
output <- gsub("(?<=.)\\b(\\S)(\\S*)", "\\U\\1\\L\\2", x, perl=TRUE)
output

[1] "SIX Sixty Test Subject"

这里是对所用正则表达式的解释:

(?<=.)   assert that some text precedes (ignore the first uppercase word)
\\b word boundary
(\\S) match and capture the first character
(\\S*) match and capture the remaining characters

然后我们用大写的第一个捕获字母替换,然后用小写的其余字符替换。请注意,正面前瞻 (?<=.)将从替换中保留第一个单词。

编辑:

相反,如果您想保留 字面词 SIX ,然后使用这个版本:

x <- "SIX SIXTY TEST SUBJECT"
output <- gsub("\\b(?!SIX\\b)(\\S)(\\S*)\\b", "\\U\\1\\L\\2", x, perl=TRUE)

关于r - 转换为正确的大小写,除非它是 R 中的 TLA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65606569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com