我有一个需要匹配的模式"^a-zxxx 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)发布于 2012-12-15 05:04:43
您可以添加以下条件,以检查距离是否来自"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)
> FALSEhttps://stackoverflow.com/questions/13881297
复制相似问题