qdapRegex::rm_nchar_words returns 涉及非英文字母时结果不同?
qdapRegex::rm_nchar_words returns different results when non English letters involved?
请帮我解决以下困惑:
qdapRegex::rm_nchar_words("è ûé", "1,2")
[1] "è ûé"
qdapRegex::rm_nchar_words('k ku ppp d', "1,2")
[1] "ppp"
为什么在第一行代码中它没有响应 "" 但在第二行中它按预期工作。
我在这里想念什么?我唯一能想到的是,在第一行代码中,字符串是由非英文字母构建的。
有什么解决办法吗?
如包作者所述:
它使用\w
定义字母,定义为[A-Za-z0-9_]
。
您需要编写自己的自定义正则表达式来处理 non-ascii 字母
更新:
在我的 Win 7 机器上,输出符合预期。
使用模式"[\pL_]"
(任何语言的任何单词)解决它的一种可能方法
rm_nchar_words("è ûé", "1,2", pattern = "[\pL_]")
Win 机器上的语言环境:
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
我会继续调查这个问题并 post 更新我的答案。
更新 2:
rm_nchar_words("è ûé", "1,2", pattern = "[\pL_]")
""
适用于我的 Ubuntu 18.04.
请帮我解决以下困惑:
qdapRegex::rm_nchar_words("è ûé", "1,2")
[1] "è ûé"
qdapRegex::rm_nchar_words('k ku ppp d', "1,2")
[1] "ppp"
为什么在第一行代码中它没有响应 "" 但在第二行中它按预期工作。 我在这里想念什么?我唯一能想到的是,在第一行代码中,字符串是由非英文字母构建的。
有什么解决办法吗?
如包作者所述:
它使用\w
定义字母,定义为[A-Za-z0-9_]
。
您需要编写自己的自定义正则表达式来处理 non-ascii 字母
更新:
在我的 Win 7 机器上,输出符合预期。
使用模式"[\pL_]"
(任何语言的任何单词)解决它的一种可能方法
rm_nchar_words("è ûé", "1,2", pattern = "[\pL_]")
Win 机器上的语言环境:
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
我会继续调查这个问题并 post 更新我的答案。
更新 2:
rm_nchar_words("è ûé", "1,2", pattern = "[\pL_]")
""
适用于我的 Ubuntu 18.04.