C 初學正規表示式筆記

2021-09-24 20:53:33 字數 2498 閱讀 6763

英文regular expression,是電腦科學的乙個重要概念,她使用一種數學演算法來解決電腦程式中的文字檢索,匹配等問題,正規表示式語言是一種專門用於字串處理的語言。在很多語言中都提供了對它的支援,c#也不例外

兩個功能:

檢索:從字串中獲取想要的部分

匹配:判斷字串是否符合正規表示式的的過濾邏輯

常用的用法:可以判斷使用者輸入的密碼或郵箱格式是否合法等

正規表示式就是有普通字元以及特殊字元組成 的文字模式。特殊字元即是元字元

\ 轉義字元,如果要表示\ 則用\\

@符號,在正規表示式前面新增@字元,這樣表示不讓編譯器去解析其中的轉義字元,而作為正規表示式的語法存在

^ 匹配字串的開始位置

$ 匹配字串的結束位置

\b 匹配乙個單詞的邊界

\b 匹配非單詞邊界

例子:匹配開始和結束

string str = "world";

//匹配開始的位置,替換成指定字串

string res = regex.replace(str, "^", "hello ");//輸出hello world

//匹配結束的位置,替換成指定字串

string res2 = regex.replace(str, "$", "!");//輸出world!

.    匹配除換行符以外的任意字元

\w    匹配字母、數字、下劃線、漢字    (指大小寫字母、0-9的數字、下劃線_)

\w    \w的補集    ( 除「大小寫字母、0-9的數字、下劃線_」之外)

\s    匹配任意空白符    (包括換行符/n、回車符/r、製表符/t、垂直製表符/v、換頁符/f)

\s    \s的補集    (除\s定義的字元之外)

\d    匹配數字    (0-9數字)

\d    表示\d的補集    (除0-9數字之外)

例子:只允許輸入數字

regex.ismatch(input, @"^\d*$");
[abc] 表示匹配a,或匹配b,或匹配c

[a-c] 表示匹配a到c之間的字元

[^x] 表示匹配除了x以外的字元

例子:代替除了ace之外的任意字元為*

string str = "abcdef";

string pattern = @"[^ace]";//代表乙個字元,除了ace之外的任意字元

string res = regex.replace(str, pattern, "*");//代替除了ace之外的任意字元為*

//結果為 a*c*e*

* 表示出現0個或多次

+ 表示出現1次或多次

? 表示

出現0次或1次

表示出現n次,

n表示乙個非負整數

表示至少出現n次

表示出現n次到m次

例子:驗證輸入的是否為合法的qq號(備註:qq號為5-12位數字)

string qq1 = "123", qq2 = "397458006",qq3="abc123456";

string pattern = @"^\d$";

bool ismatch1 = regex.ismatch(qq1, pattern);//false

bool ismatch2 = regex.ismatch(qq2, pattern);//true

bool ismatch3 = regex.ismatch(qq3, pattern);//false

| 字元,

將兩個匹配條件進行邏輯或運算

例子:查詢數字或字母

string str = "123哈哈abc啊啊";

string pattern = @"\d|[a-z]";

matchcollection col = regex.matches(str, pattern);

foreach (match match in col)

結果為

使用小括號()

例子:單個字元重複兩次替換為**

string str = "aabbaaacccaaaa";

string pattern = @"a";

string res = regex.replace(str, pattern, "**");

//結果為 **bb**accc****

string pattern = @"^(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.)(2[0-4]\d|25[0-5]|[01]?\d\d?))$";
學習正規表示式

常用正規表示式

正規表示式初學筆記

grep 查詢 將關鍵字顏色為紅色 alias grep grep color auto 表示以什麼什麼開頭 表示以什麼為結尾 a z 表示a z的任意字元 a z 表示非以a z開頭的任意字元 表示任意乙個字元 表示0個或者任意個它前面的字元 表示0個或1個與.有些相似 表示一次或多個與 有些相似...

正規表示式初學筆記

grep 查詢 將關鍵字顏色為紅色 alias grep grep color auto 表示以什麼什麼開頭 表示以什麼為結尾 a z 表示a z的任意字元 a z 表示非以a z開頭的任意字元 表示任意乙個字元 表示0個或者任意個它前面的字元 表示0個或1個與.有些相似 表示一次或多個與 有些相似...

正規表示式初學

今天第一次真正好好學了下這個正規表示式,還是看的鳥哥私房菜,感覺收穫很大啊,閒話不多說了。下面是re字元的使用 word 待搜尋的字元word在字串首行 範例 搜尋首行為 開始的那一行,並列出行號 grep n a.txt word 待 搜尋的字元word在字串行尾 範例 將行尾為!的那一行列印出來...