Agrep - 不要修改角色类

时间:2012-12-14 15:10:43

标签: r grep agrep

我有一个模式“[^ a-z] xxx yyy [^ a-z]”,我需要匹配。我可以在模式的“xxx yyy”部分接受近似匹配,但需要字符类保持不变。

上述模式在“skxxx yyyaa”等字符串中找到匹配项。

我尝试过使用“< [^ a-z]> xxx yyy< [^ a-z]>”其中<>元字符不允许更改,但我认为它忽略了<>中的元字符。

代码是:

agrep( "[^a-z]xxx yyy[^a-z]","skxxx yyyaa",max.distance=2,fixed=FALSE,ignore.case=TRUE)

1 个答案:

答案 0 :(得分:1)

您可以添加以下条件,检查距离是否来自“xxx yyy”,而不是来自周围的[^ a-z]。

adist("[^a-z]xxx yyy[^a-z]","sk-xxx yyz-aa",fixed=FALSE,ignore.case=TRUE) == 
  adist( "xxx yyy","sk-xxx yyz-aa",fixed=FALSE,ignore.case=TRUE)

> TRUE

adist("[^a-z]xxx yyy[^a-z]","sk-xxx yyzaa",fixed=FALSE,ignore.case=TRUE) == 
  adist( "xxx yyy","sk-xxx yyzaa",fixed=FALSE,ignore.case=TRUE)

> FALSE