2016-08-19 5 views
0
Regex rgx = new Regex(@"/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i"); 

bool result = rgx.IsMatch("PPPPLT80R10M082K"); 

MessageBox.Show(result.ToString()); 

これはイタリアの税コードの正規表現です。それは作品は、私はまた、regex101.comに試してみたはずですし、それがエラーを与えない: See also here 問題は、私は、コードを実行すると、結果は常に偽であるということです。私は何を間違えたのですか? ありがとうございますRegexは常にfalseを返します。C#

+0

はい、正規表現*パターン*が機能します。正規表現の区切り文字と修飾子はパターンの一部ではなく、パターンをRegexのコンストラクタの引数として指定する必要があります。 '新しい正規表現(@ "^ [AZ] {6} \ D {2} [AZ] \ D {2} [AZ] \ D {3} [AZ] $"、RegexOptions.IgnoreCase)' –

+0

はBTW使用、regex101 .NET正規表現はサポートしていません。 –

+0

実際にC#を使用するサイトで正規表現をテストすることも確かめてください。http://regexstorm.net/ – juharr

答えて

0

あなたの正規表現から周囲の/を取り除くだけで、.NETではその必要はありません。

ケース非感受性はRegexコンストラクタのRegexOptions.IgnoreCase第二引数を使用して指定することができます。

Regex rgx = new Regex(@"^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$", RegexOptions.IgnoreCase); 
+0

ありがとうございます –

関連する問題