1

私のアプリケーションでは、入力された文字列と DB に保存されている文字列との間の文字列照合関数が必要になります。これらの文字列は、製品の寸法 (長さ、高さなど) に関係します。私の目標は、入力された文字列が既にデータベースに存在するかどうかを確認することですが、別のパターンを使用している可能性があります。たとえば、次のようになります。

入力 : データベースに「vis 4X40」、「vis 4 x 40」、「vis 4* 40」などがある場合、「vis 4*40」は true を返すはずです。

私がまだ見つけた唯一の方法は、正規表現を使用してデータベースを正規化し、次のようなパターンを置き換えることです。

 \d+ *[xX*] *\d+

正規化されたもの(NumberXNumberなど)を使用して、入力の文字列で同じことを行い、それを見つけようとします。ただし、ツールが既に存在していて、それを可能にするかどうか疑問に思っていました。(私は C# .NET V4 で作業しています)

4

2 に答える 2

1

より良い方法は、両方のデータを連結してからそれらを一致させることです

string target=inputString+"#"+storedString;

if(Regex.IsMatch(target,"(\d+) *[xX*] *(\d+)#\1 *([xX*]) *\2"))
        //the string is in the database
else
       //it is not
于 2012-11-28T14:47:29.120 に答える
0

ユーザー提供のワイルドカードを使用し、を置き換えてテーブルにクエリを実行するだけ*です%SELECT col FROM table WHERE col LIKE 'vis 4%40'

必ずパラメータを使用してクエリを実行してください

于 2012-11-28T14:36:58.813 に答える