1

一致させる必要があるパターン "[^az]xxx yyy[^az]" があります。パターンの「xxx yyy」の部分で近似一致を受け入れることができますが、文字クラスを変更する必要があります。

上記のパターンは、"skxxx yyyaa" のような文字列で一致を検出します。

<[^az]>xxx yyy<[^az]> を使用してみましたが、<> メタ文字は変更できませんが、<> 内のメタ文字は無視されると思います。

コードは次のとおりです。

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

1 に答える 1

1

次の条件を追加できます。これは、距離が「xxx yyy」の部分からのものであり、周囲の[^az]からのものではないことを確認します。

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
于 2012-12-14T21:04:43.047 に答える