一
正則則表示式表述了乙個字串的書寫規則。
(判斷使用者輸入的密碼是否合法,判斷使用者輸入的郵箱格式是否合法)
1.檢索:通過正規表示式,從字串中獲取我們想要的部分
2.匹配:判斷給定的字串是否符合正規表示式的過濾邏輯
二.正規表示式的組成
正規表示式就是由普通字元及特殊字元(成為元字元)組成的文字模式,該模式表述在查詢文字主體時待匹配的乙個或多個字串
正規表示式中,\是轉義字元、*是元字元(如果要表示乙個\.*字元的話,就需要用\\ \. \*)
三.定位元字元
在字串前加@字元,這樣編譯器就不會去解析其中的轉義字元,作為正規表示式的語法(元字元)存在
字元說明
^匹配 字串的開頭或行的開頭
$匹配必須出現在字串的末尾或行的末尾
\b匹配單詞的開始或結束的位置
\b匹配非單詞的開始或結束的位置
\a指定匹配必須出現在字串的開頭(忽略multiline選項)
\z指定匹配必須出現在字串的結尾(忽略multiline選項)
\z指定匹配必須出現在字串的結尾或字串結尾處的\n之前(忽略multiline選項)
\g指定匹配必須出現在上乙個匹配結束的地方。與match.nextmatch()一起使用時,此斷言確保所有匹配都是連續的。
四.基本語法元字元
字元說明
\d匹配數字(0-9)
\d表示\d的補集
\w匹配字母、數字、下劃線、漢字
\s匹配任意空白字元(/n換行、/r回車符、/t製表符、/v垂直製表符、/f換頁等)
\w\s
五.反義字元
字元說明
\w\w的補集
\s\s的補集
\d\d的補集(出0-9)的數字之外
\b匹配非單詞的開始或結束的位置
[abc]
匹配中括號中的字元
[a-c]
匹配中括號中a-c的字元
[^x]
匹配除了x以為的任意字元
[^adwz]
匹配除了adwz這幾個字元以外的任意字元
string str1 = "holle world";
string pattern = @"[^oel]";
string s=regex.replace(str1, pattern,"*");
console.writeline(s);
console.readkey();
輸出結果:*olle**o*l*
//通過正規表示式regex.splic對字串按符號分割
string str1 = "fagea,feawgrafe;yjsrasfa.reag/grea";
string pattern = @"[,;./]";
string st=regex.split(str1, pattern);
foreach (var variable in st)
console.readkey();
輸出結果:
fagea
feawgrafe
yjsrasfa
reag
grea
六.重複描述字元
字元說明
連續重複匹配n個字元
連續重複匹配n個或多個字元
連續重複匹配n-m個字元
?重複0次或一次
+重複一次或更多次
*重複零次或更多次
//輸入的是否為qq號
string str1 = "510646531";
string str2 = "6042146777894";
string str3 = "1f2344556";
string pattern = @"^\d$";
bool ismatch = regex.ismatch(str1, pattern);
bool ismatch2 = regex.ismatch(str2, pattern);
bool ismatch3 = regex.ismatch(str3, pattern);
console.writeline($",,");
console.readkey();
七.則一匹配符
字元說明
|將連個匹配條件進行邏輯「或」(or)運算
string str1 = "25()dffse的撒熱狗";
string pattern = @"\d|[a-z]";
matchcollection s = regex.matches(str1, pattern);
foreach (match variable in s)
console.readkey();
輸出結果:25
dffs
e
string str1 = "fagea,feawgrafe;yjsrasfa.reag/grea";
//string pattern = @"[,;./]";
string pattern1 = @"[,]|[;]|[.]|[/]";
string st=regex.split(str1, pattern1);
foreach (var variable in st)
console.readkey();
八.對正規表示式進行分組
用小括號指定表示式(也叫做分組)
//檢測ip位址是否合法
string ip = "192.168.123.010";
string patternip = @"^(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.)(2[0-4]\d|25[0-5]|[01]?\d\d?))$";
bool isip=regex.ismatch(ip, patternip);
console.writeline(isip);
console.readkey();
C 正規表示式
c 中的正規表示式 1 c 中的正規表示式 jeffrey e.f.friedl寫了一本關於正規表示式的書 精通正規表示式 作者為了使讀者更好的理解和掌握正規表示式,編造了乙個故事。該書的語言以perl為主。據我所知c 中的正規表示式也是基於perl5。所以它們應該有許多的共同之處。其實,我並不打算...
C 正規表示式
正規表示式 元字元 匹配任何單個字元,匹配括號內的任何乙個字元,改變優先順序,定義提取組,將兩個匹配條件進行邏輯或運算,匹配0至多個它之前的子表示式,和萬用字元 沒關係,匹配前面的子表示式一次或多次,匹配前面的子表示式零次或一次,匹配前面表示式確定的n次,匹配前面表示式至少n次,匹配前面表示式n到m...
C 正規表示式
正規表示式元字元 1 中括號 用來描述匹配規則,乙個中括號只能匹配乙個字元 2 小括號 用來描述匹配的字串,乙個小括號表示匹配一段字串 3 大括號 用來描述匹配的具體數量 4 s 用於匹配單個空格符,包括tab鍵和換行符 5 s 用於匹配除單個空格符之外的所有字元 6 d 用於匹配從0到9的數字 7...