在?agrep
(grep
使用模糊匹配)中,它提到我可以设置参数fixed=FALSE
以让我的模式被解释为正则表达式。
但是,我无法让它工作!
agrep('(asdf|fdsa)', 'asdf', fixed=F)
# integer(0)
在这种情况下,上面的内容应该匹配正则表达式“(asdf|fdsa)”与测试字符串“asdf”完全匹配。
确认:
grep('(asdf|fdsa)', 'asdf', fixed=F)
# 1 : it does match with grep
更令人困惑的是,adist
正确地将模式和字符串之间的距离设为 0,这意味着肯定agrep
应该返回 1 而不是(不可能 0 大于 default )。integer(0)
max.dist = 0.1
adist('(asdf|fdsa)', 'asdf', fixed=F)
# [,1]
# [1,] 0
为什么这不起作用?有什么我不明白的吗?一种解决方法?
我很乐意使用adist
,但不完全确定如何将agrep
' 的默认max.distance=0.1
参数转换为adist
' 的相应参数。
(是的,我被困在一台无法比 R 2.15.2 做得更好的旧电脑上)
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i686-redhat-linux-gnu (32-bit)
locale:
[1] LC_CTYPE=en_AU.utf8 LC_NUMERIC=C
[3] LC_TIME=en_AU.utf8 LC_COLLATE=en_AU.utf8
[5] LC_MONETARY=en_AU.utf8 LC_MESSAGES=en_AU.utf8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base