2017-01-08 8 views
0

私は検証する必要があり、C#で文字列の有効な文字だけを渡す必要があるソリューションに取り組んでいます。 など。 "^\\S(|(.|\\n)*\\S)\\Z" と私が検証したいテキストは、今、私はその無効を知っ正規表現に有効な文字のみを検証し、正規表現に渡す#

127 Finchfield Lane 

を下回っている:私の正規表現です。しかし、正規表現に対して無効な文字列を削除して正規表現に対して文字列が正常に検証された場合にのみ渡す方法はありますか?私が正しくあなたを理解していれば

+0

「有効な文字」は何と考えますか? –

+0

@ Mahajan344条件をチェックしたいのですか?または他のいずれか –

+0

@SjorsOttjes文字列がregexを通過する場合、それが有効であることを意味します。 – Mahajan344

答えて

0

、あなたがRegex.IsMatch

if(Regex.IsMatch(str, "^\\S(|(.|\\n)*\\S)\\Z")) 
{ 
    // do something with the valid string 
} 
else 
{ 
    // strip invalid characters from the string 
} 
+0

私は無効な文字を取り除く方法を探しています – Mahajan344

+0

しかし、私はストライプしています..私の質問 – Mahajan344

+0

@ Mahajan344あなたがストリップしたい文字を知っていれば、 ) –

0
using System; 
using System.Text.RegularExpressions; 

namespace PatternMatching 
{ 
    class Program 
    { 
     static void Main() 
     { 
      string pattern = @"(\d+) (\w+)"; 

      string[] strings = { "123 ABC", "ABC 123", "CD 45678", "57998 DAC" }; 

      foreach (var s in strings) 
      { 
       Match result = Regex.Match(s, pattern); 

       if (result.Success) 
       { 
        Console.WriteLine("Match: {0}", result.Value); 
       } 
      } 

      Console.ReadKey(); 
     } 
    } 
} 

を探しているこれは、あなたが必要と何をしているようです。私が誤解していないことを願っています。

0

文字列を正規表現に対して検証するには、Regex.IsMatchを使用します。

Regex.IsMatch(string, pattern) //returns true if string is valid 

マッチ値を取得したい場合は、それを使用できます。

Match match = new Regex(@"\d+").Match(str); 
match.value; //it returns only the matched string and unmatched string automatically stripped out 
+0

Regex.IsMatch( "BAYR BALLAGAWNE"、 "^ \ \\ S)\\ S)\\ Z ")、trueを返しますが、同じ文字列を上のメソッドに渡すと空白として値が返されます。 – Mahajan344

+0

@ Mahajan344はパターンの@記号を使用します。 –

+0

@ Mahajan344あなたがそれが偽を返すと思うようにするその文字列についてはどうですか? – Abion47