我們最經常遇到的驗證,就是電子郵件位址驗證。**上常見。各種網頁指令碼也都常用「正規表示式」(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...