gpt4 book ai didi

r - R 中非 ASCII 字符的正向后视

转载 作者:行者123 更新时间:2023-12-01 01:47:27 25 4
gpt4 key购买 nike

我有一个 R 函数,它试图将每个“单词”的第一个字母大写

proper = function(x){
gsub("(?<=\\b)([[:alpha:]])", "\\U\\1", x, perl = TRUE)
}

这工作得很好,但是当我有一个带有毛利语长音的单词时,例如 Māori我得到了不正确的大写,例如
> proper("Māori")
[1] "MāOri"

显然,RE 引擎认为宏 ā是一个词边界。不知道为什么。

最佳答案

由于您使用的是 PCRE 正则表达式引擎(通过 perl=TRUE 启用),您必须通过 (*UCP)标记到正则表达式,以便所有速记和单词边界都可以检测到 Unicode 文本中的正确符号/位置:

proper = function(x){
gsub("(*UCP)\\b([[:alpha:]])", "\\U\\1", x, perl = TRUE)
}
proper("Māori")
## [1] "Māori"

R demo .

请注意 \b已经是一个零宽度断言,不必放入正向后视,即 (?<=\b) = \b .

关于r - R 中非 ASCII 字符的正向后视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47605156/

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