r - 如何使用str_detect使用简单字符在R中查找法语UTF-8重音字符?

标签 r regex stringr

我需要找到带有简单字符的重音字符。例如:加拿大法语中的“é”、“è”或带有 e 的“ê”,UTF-8。

 library(tidyverse)

 Sys.setlocale(locale = "fr_CA.UTF-8")
 a <- c("Léger", "leger")

 str_detect(a, regex("leger", ignore_case=T))
 ## [1]  FALSE  TRUE

 str_detect(a, coll("leger", ignore_case=T, locale = "fra"))
 ## [1] FALSE  TRUE

这段代码的结果应该是 TRUE,TRUE。

最佳答案

您可以将输入字符串转换为仅使用 ASCII 字符,然后对其进行匹配。例如

str_detect(iconv(a, to='ASCII//TRANSLIT'),regex("leger", ignore_case=T))
# [1] TRUE TRUE

关于r - 如何使用str_detect使用简单字符在R中查找法语UTF-8重音字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52007491/

相关文章:

使用 R 中的坐标从矩阵中删除值

r - 在函数中获取并处理 ddply 中的整行

C# 正则表达式匹配并换行多行

python - 从文本文件读取正则表达式时如何防止 Python 转义特殊字符?

r - Stringr 函数或 gsub() 来查找 x 数字字符串并提取前 x 数字?

regex - 如何在 R 中使用正则表达式应用 a 而不是 b 模式匹配

r - 是否可以为 R 定义跨平台工作目录?

r - 在 R : subsets of unequal length 中处理 tapply() 与 ddply {plyr} 的输出

python - 使用正则表达式解析字符串

r - 使用 R 计算字符串中的连续模式