在str_replace中使用ascii

问题描述 投票:0回答:2

我正在开发一个 R 包,它具有替换 ü、ä 等字符的功能。 如果我检查包裹,我会收到警告:

便携式软件包的 R 代码中只能使用 ASCII 字符, 也许除了评论之外。 对其他字符使用 \uxxxx 转义。

功能包含

  n <- str_replace_all(n, c('ü' = 'ue', 'ï' = 'ie', "ä" = 'ae','ö' = 'oe'))

我尝试将 ü 替换为“\u00fc”,其他人也是如此。但这不起作用。

str_replace("uüe", \\u00cf, "ue")
str_replace("uüe", *\\u00cf", "ue")
str_replace("uüe", <+u00cf>, "ue")

有什么想法,如何做到这一点?

r tidyverse
2个回答
1
投票

据我所知,您正在使用该软件包

stringr
。这确实允许使用和操作非 ASCII 字符。

例如:

vec <- "ärmlich nicht über den wolken, höchstens hïmmlisch"

设置要替换的字符串名称

setNames
:

ref <- setNames(c("ue", "ie", "ae", "oe"),
                c("ü", "ï", "ä", "ö"))

将此集合输入到

str_replace_all
操作中:

library(stringr)
str_replace_all(vec, ref)
[1] "aermlich nicht ueber den wolken, hoechstens hiemmlisch"

0
投票
str_replace("uüe", "\\u00fc", "ue")

OP 最初尝试中的错误:

  1. 模式(ü 的 ASCII 代码)不在引号 ("") 中;我认为第二个示例中有一个拼写错误(
    *\\u00cf"
    而不是
    "\\u00cf"
  2. ASCII 代码错误:
    u00cf
    而不是
    u00FC
    (参见 https://www.compart.com/en/unicode/u+00fchttps://www.compart.com/en/ unicode/u+00cf)

有趣的是,无论反斜杠是否被转义,它都有效:

"\u00fc"
"\\u00fc"

© www.soinside.com 2019 - 2024. All rights reserved.