C 11標準 STL正規表示式 驗證電子郵件位址

2021-07-25 04:59:54 字數 1085 閱讀 4251

我們最經常遇到的驗證,就是電子郵件位址驗證。**上常見。各種網頁指令碼也都常用「正規表示式」(regular expression)對我們輸入的電子郵件位址進行驗證,判斷是否合法。有的還能分解出使用者名稱和網域名稱。現在用c++語言實現一下電子郵件位址驗證程式,用的是c++ 11標準新增加的stl正規表示式。

源**如下,該**已在visual studio 2010上驗證通過。g++ 4.6不支援c++ 11的stl正規表示式,g++ 4.6上編譯可以通過,但執行時錯誤,丟擲regex_error異常。因此,如果要在g++ 4.6上使用正規表示式,請用gnu正規表示式庫或者用boost正規表示式庫。

/*

* regex.cpp - 用正規表示式驗證電子郵件位址

* * c++11標準 stl正規表示式

* ** * 編譯命令:

* cl regex.cpp /ehsc /link /out:regex.exe *

*/#include

#include

#include

#include

//regular expression 正規表示式

using

namespace

std;

intmain ( )

(\\.[a-z])?)");

//正規表示式,匹配規則:

//第1組(即使用者名稱),匹配規則:0至9、a至z、a至z、下劃線、點、連字元之中

//的任意字元,重複一遍或以上

//中間,乙個「@」符號

//第二組(即網域名稱),匹配規則:0至9或a至z之中的任意字元重複一遍或以上,

//接著乙個點,接著a至z之中的任意字元重複2至3遍(如com或cn等),

//第二組內部的一組,乙個點,接著a至z之中的任意字元重複2遍(如cn或fr等)

//內部一整組重複零次或一次

//輸入檔案結尾符(windows用ctrl+z,unix用ctrl+d)結束迴圈

while ( cin >>email_address )

else

}return

exit_success;

}

C 11正規表示式

優勢 使得字串的處理更加簡單 一些相關的操作 驗證 檢查字串是否是想要的合法性 決策 判斷乙個輸入標書哪種字串 解析 從輸入的字串中查詢自己想要的資訊 轉換 搜尋字串,並將字串替換為新的格式化的字串 遍歷 搜尋字串所有出現的地方 符號化 根據一組分隔符將乙個字串分解為多個子字串 一些重要術語 模式 ...

c 11 正規表示式

include include 正規表示式標頭檔案 using namespace std regex search 檢索 regex replace 將檢索到的物件進行替換替換 match 是否匹配 void main cout 正規表示式實現字串的替換 void main 匹配時間 void m...

C 11 正規表示式

0.常用正規表示式 中文字元 u4e00 u9fa5 雙位元組字元 包括漢字在內 x00 xff 空白符 n s r 國內 號碼 d d d 18位身份證號 d d d d d 0 9 x 年 月 日 格式日期 0 9 1 9 0 9 1 9 0 9 0 9 1 9 0 9 1 9 0 9 0 13...