2017-07-18 4 views
0

私はリストを持っていますが、ユーザの検証に必要な 'Unknown'、 'TBC'、 'TBA'などの文字列を含むunknownCharsと言うことができます。リストから不要な文字を削除して文字列の値を比較する方法C#

入力した文字列が自分のリスト内に存在するかどうかを確認する必要がありますが、大文字と 'UUknown'などの余分な文字やN/Aなどの特殊文字は認識できません。私は最初に入力を正規化し、間違って入力された白いスペースやその他の文字を取り除き、入力を処理して名義文字列が一致するかどうかを確認する必要があると仮定しています。だから、

public bool useUnkownPack(string strTest) 
{ 
    List<string> unkownChars = new List<string> {'Unknown', 'TBC', 'TBA', "N/A"} 
    if(unkown.Contains(strTest, StringComparer.OrdinalIgnorcase)) 
    { 
     return false; 
    } 
    return true; 
} 

誰かが任意の不要な文字を入力してnormiliseする方法を正しい方向に私を指すことができれば、私はそのに一致する前に、私は

+0

あなただけ多くの文字列の1つ以上が[不明 'のような大文字と小文字を区別しない正規表現を使用し、文字列の中に存在しているかどうかを検出したい場合| TBC | TBA | N/a] 'を実行し、入力が正規表現と一致するかどうかを返しますか? – CodeCaster

+0

@Am_I_Helpfulこれは3つのフォームを含む複数のWinフォームアプリケーションです。ユーザーはそのフォームを使用して情報を公開する必要があります。私の知識はそれですo空白が入力された単語の前にある場合、それは検証をパスします。特別な文字があれば、oboolを返す必要があります。 –

答えて

0

は項目のリストは、すべての正規化を持っていることを確認してください非常に感謝されます、文字のみの値。正規表現を使用して、アルファベット以外の文字を削除します。

Regex rgx = new Regex("[^a-zA-Z]"); 
Console.WriteLine(useUnkownPack(rgx.Replace(inputValue, ""))); 

.... 

public static bool useUnkownPack(string strTest) 
{ 
    List<string> unkownChars = new List<string> {"Unknown", "TBC", "TBA", "NA"}; 

    if(unkownChars.Contains(strTest, StringComparer.OrdinalIgnoreCase)) 
    { 
     return false; 
    } 

    return true; 
} 

ライブ例:http://rextester.com/QFCW63817

+0

あなたの応答のために気をつけてください。検証されたすべてのイベントまたはuseKownPack関数内で作成された正規表現を使用すべきですか? –

+0

@ dave.2は公平であり、私の例とは異なり、おそらくあなたのメソッドの内部でそれを行うべきです。 – Jamiec

関連する問題