特定の文字列を受け取り、それを特定の形式と比較するコードを作成しようとしています。これは私が使用しているものです:
private static readonly Regex phoneNumber = new Regex(@"\d{3}-\d{3}-\d{4}");
public static bool VerifyPhoneNumber(string pNumber)
{
return phoneNumber.IsMatch(pNumber);
}
形式は000-000-0000
、であり、と比較するとtrueを返します555-555-5555
。MessageBox
表示用pNumber
とphoneNumber
比較用もあります。メッセージボックスには次のものが表示されますpNumber = 555-555-5555
。phoneNumber = \d{3}-\d{3}\d{4}
しかし、それは私が望むフォーマットではありません。この形式(000)000-0000を使用したい。この形式を使用するために、phoneNumberを次のように変更しました。
private static readonly Regex phoneNumber = new Regex("(" + @"\d{3}" + ")" + @"\d{3}-\d{4}");
しかし、このコードを実行して比較(555)555-5555
すると、falseが返されます。このMessageBox
ためのは次のように表示されます:pNumber = (555)555-5555
およびphoneNumber = (\d{3})\d{3}-\d{4}
Regex
今、私はこの問題を自分で修正するのに十分なことをまだ知りません。これまでの私の調査によると、()が問題を引き起こしています。()は正規表現に使用され、ダッシュは使用されないためだと思います。したがって、ダッシュは何も台無しにしません。私の質問は、自分のニーズに合わせてコードを変更するにはどうすればよいですか?どうすれば問題なくコードで()を取得できますか?