我有一个很大的文本向量,我想搜索特定的字符或短语。正则表达式需要很长时间。怎样才能快速搜索到呢?
样本数据:
R <- 10^7
garbage <- replicate( R, paste0(sample(c(letters[1:5]," "),10,replace=TRUE),collapse="") )
如果确实需要正则表达式,通常可以通过使用 PCRE 库(通过设置perl=TRUE
)。还有其他性能提示?grep
:
性能考虑:
如果您正在进行大量正则表达式匹配,包括
非常长的字符串,您需要考虑使用的选项。
一般来说 PCRE 会比默认的正则表达式更快
引擎,并且“fixed = TRUE”更快(特别是当每个模式
仅匹配几次)。
如果您在单字节语言环境中工作并标记了 UTF-8
在该语言环境中可表示的字符串,首先将它们转换为
仅一个 UTF-8 字符串将强制所有匹配在
Unicode,默认 POSIX 的惩罚大约是 3 倍
1003.2 模式。
如果您可以使用“useBytes = TRUE”,则字符串将不会
匹配前检查一下,实际匹配会更快。经常
基于字节的匹配在 UTF-8 语言环境中就足够了,因为字节模式
一个字符永远不会匹配另一个字符的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)