Railsでは、文字列 'AE18BX21'を渡しています。私は、入力文字列と一致する文字列を見つけるためにデータベースを照会しています。しかし、入力文字列とデータベースの文字列が一致しないことがあります。場合によっては余分な文字/数字があり、時には文字/数字が欠けている場合もあれば、文字/数字が異なる場合もあります。文字列を他の文字列とほとんど同じにする方法(ファジーマッチング)
私のようないくつかの異なる正規表現式試してみました:理想の世界では
Table.where("string =~ ?", 'A+E+1+8+B+X+2+1')
Table.where("string =~ ?", '(A|.)+(E|.)+(1|.)+(8|.)+(B|.)+(X|.)+(2|.)+(1|.)')
を、私はそれが80%
以上を一致させるだけの文字列を返すようにしたいでしょう。
を私はあなたがレーベンシュタイン距離のようなものを探していると思いますが、わかりませんあなたが使用しているdbエンジンとサポートしているエンジンあなたの最初の正規表現に関連する: 'Table.where(" string =〜? "、" A * E * 1 * 8 * B * X * 2 * 1 * ') ' –
ええ、私は考えなかったレーベンシュタイン距離。私はPostgresSQLを使用しています。それを確認してください。 – cal1801