首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相同的regex在grepl和stri_detect_regex上的行为不同。

相同的regex在grepl和stri_detect_regex上的行为不同。
EN

Stack Overflow用户
提问于 2022-08-31 08:58:21
回答 1查看 43关注 0票数 0

编辑--我在RVersion3.6.1上遇到了这个问题,在较新的版本中,这个问题并不存在,而且函数的行为也是相似的。

考虑到这个向量,其中第一个元素在拉丁文-1补充unicode块中,第二个元素在拉丁扩展附加unicode块中,元素3-7在拉丁扩展D unicode块中(拉丁扩展E unicode块也是如此)。使用的正则表达式是^[\\p{L} ]+$,它应该将字符串与来自任何语言的任何类型的字母匹配。我看到greplstri_detect_regexp{L}的解释有所不同。

代码语言:javascript
运行
复制
v <- c("é", "Ḃ", "Ꞵ", "ꞵ", "Ꞷ", "ꞷ","keepme", "remove$me", "remove.me")

v[grepl("^[\\p{L} ]+$", v, perl = T)]
# [1] "é"      "Ḃ"      "keepme"

v[stri_detect_regex(v, "^[\\p{L} ]+$")]
# [1] "é"      "Ḃ"      "\ua7b4" "\ua7b5" "\ua7b6" "\ua7b7" "keepme"

是否有任何文档说明它们在这个表达式上的行为为何不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-02 07:27:19

这种情况发生在较早的R版本上,RVersion3.6.1 base并不能识别使用regex p{L}的所有unicode块,但是正如@Oliver注释的那样,它在R的后期版本中所做的事情和他在R4.2.1中测试的一样。对我来说,这个问题得到了回答。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73553359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档