0

Sphinx で regexp_filter を使用して用語を置き換えています

ほとんどの場合、私はそうすることができます。たとえば、スペルミスは簡単です。

regexp_filter = Backround => Background

キャプチャ グループ表記を使用したスワッピングも:

regexp_filter = (Left)(Right) => \2\1

ただし、パターン マッチを使用して置換したい特定の単語を見つけるときに、さらに問題が発生します。

 regexp_filter = (PatternWord1|PatternWord2)\W+(?:\w+\W+){1,6}?(SearchTerm)\b => NewSearchTerm

NewSearchTerm は、\2 だけを置き換えたい用語です (\1 と残りのパターンはそのままにしておきます)。そう

したがって、テキストがある'Pizza and Taco Parlor'場合:

regexp_filter = (Pizza)\W+(?:\w+\W+){1,6}?(Parlor)\b => Store

に変換します'Pizza and Taco Store'

この場合、SearchTerm が /2 であることはわかっていますが、変換方法がわかりません。/2s などを追加して複数形にすることができることはわかっていますが、実際には、複数の単一のキャプチャ グループであり、そのグループを置き換えたいだけなので、実際にどのように置き換えることができますか?

4

1 に答える 1