• 締切済み

正規表現で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})(\]?)$"); どなたか分かる方ご教授ください。 よろしくお願いします。

みんなの回答

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

C++は何を使用していますか? その種類とバージョンを書いてください。 (Windows2000sp4/VC++6sp6/boostとか) それから「うまくいかない」の根拠を提示してください。 (コンパイルエラーとかランタイムエラーとか結果がどうとか)

fumi883
質問者

お礼

ご回答ありがとうございます。 開発環境はOS WindowsPro、.NET2003でVC7.0を使用してます。 うまくいかない内容は、VBやC#の正規表現をそのまま使うと@で0x40は使用できませんや、'\'がエスケープ文字として正しく認識できませんなどのエラーもしくはワーニングがでます。 その後、バックスラッシュ自体をエスケープ文字として(\\のかたち)扱うとなんとか怒られずにコンパイルはできました。まだ試験はしていませんので不明ですが。。 ご指摘ありがとうございました!

関連するQ&A