- 締切済み
正規表現でE-mailアドレス形式チェックの仕方を教えてください!
C++でRegex::Ismatchメソッドを使いメールアドレス形式であるかのチェックをしたいのですが、 どうもうまくいきません。。 MSDNにVB用とC#用のサンプルはあったのですが、正規表現をC++用に変換できずに困っています。 ★VB Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$") ★C# Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); どなたか分かる方ご教授ください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- RAPTsong
- ベストアンサー率42% (74/175)
回答No.1
C++は何を使用していますか? その種類とバージョンを書いてください。 (Windows2000sp4/VC++6sp6/boostとか) それから「うまくいかない」の根拠を提示してください。 (コンパイルエラーとかランタイムエラーとか結果がどうとか)
お礼
ご回答ありがとうございます。 開発環境はOS WindowsPro、.NET2003でVC7.0を使用してます。 うまくいかない内容は、VBやC#の正規表現をそのまま使うと@で0x40は使用できませんや、'\'がエスケープ文字として正しく認識できませんなどのエラーもしくはワーニングがでます。 その後、バックスラッシュ自体をエスケープ文字として(\\のかたち)扱うとなんとか怒られずにコンパイルはできました。まだ試験はしていませんので不明ですが。。 ご指摘ありがとうございました!