C 正規表示式示例

2021-04-13 08:54:17 字數 1881 閱讀 4053

正規表示式是用來解析字串的.而解析字串不外乎是達到下面幾種目的

1.驗證某一長串字串中是否有符合某個條件的子字串

2.從長字串中提取符合某個條件的子字串

3.把符合條件的子字串替換成另外的字串

4.把乙個字串分割成幾個小字串

正規表示式的複雜主要是體現在怎麼指定那個"條件".其實實現上面說的4個目的大部分時候用string類的一些函式也照樣能實現.只不過有時太複雜了點

下面舉幾個簡單的例子說下怎麼實現上面的4個目的.使用正規表示式時要引用命名空間using system.text.regularexpressions;

假如有字串string str = "i am arwen";我們想驗證下這個字串裡是否包含字元"wen".

用正規表示式:  bool exist = regex.i**atch(str, "wen");

用string類的函式:bool exist = str.contains("wen");

假如有字串string str ="ahttpp://www.baidu.com/s?tn=sitehao12";我們想把字元www.baidu.com提取出來

用正規表示式:string substr = regex.match(str, @"w\..*\.com").value;

用string類的函式:

int start = str.indexof("w");

int end = str.indexof("m");

string substr = str.substring(start, end - start + 1);

隨著問題的複雜我們發現string類的函式就有點力不 從心了.假如是隨便給一段未知的字串,然後要求提取出乙個**來.用string類函式實現起來很複雜而且容易出錯

而用上面那句簡單的正規表示式就能正確的提取.

還是和上面類似的例子,假如隨便給一段字串,把裡面的**替換成www.csdn.net

假設還是字串string str ="ahttpp://www.baidu.com/s?tn=sitehao12";

用正規表示式.

string newstr = regex.replace(str, @"w\..*\.com", "wwww.csdn.net");

這個用string的函式實現起來就更麻煩了啊.這裡就不用它來實現了.反正思路就是要先搜尋出字串裡的**,再把它替換成www.csdn.net

假如有字元string str = "http:ww/w.baidu.com";要以: / .這樣的符號為分割符,把字元分割成只包含字母的子字串

用正規表示式:

string strs = regex.split(str, @"[:/\.]");

用string類的函式

string strs = str.split(new char );

在上面的例子中我們會看到@"w\..*\.com" 和@"[:/\.]這樣奇怪的字串,我們一般把它們叫作模式(pattern),也就是說通過它來指明要符合某個條件.在正規表示式的應用中最難的地方就是怎麼通過它們來指定條件.其中的符號都有特殊的含義.

正規表示式示例

表示式匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 字元說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n...

正規表示式示例

匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n n 匹配...

正規表示式 示例

正規表示式的最簡單形式是在搜尋字串中匹配其本身的單個普通字元。例如,單字元模式,如 a,不論出現在搜尋字串中的何處,它總是匹配字母 a。下面是一些單字元正規表示式模式的示例 a 7 m 可以將許多單字元組合起來以形成大的表示式。例如,以下正規表示式組合了單字元表示式 a 7 和 m。a7m 請注意,...