正規表示式可以看做一種有特定功能的小型程式語言,在一段文字中定位子字串。利用正規表示式可以快速地分析大量的文字以找到特定的字元模式;提取、編輯、替換或刪除文字子字串;或將提取的字串新增到集合。正規表示式的基本語法可參見:深入淺出之正規表示式(一)
,深入淺出之正規表示式(二)
。c#命名空間system.text.regularexpressions提供了支援正規表示式操作的類。這些類主要包括regex,matchcollection,match,groupcollection,group,caputercollection和caputer,下圖表示了這些類之間的關係。
正規表示式很重要的乙個應用就是在文字中提取字串,這一功能的實現主要是靠match類和group類,因此理解匹配和組的概念很重要。要實現在一段文 本中查詢url功能,這個例子比較簡單,只要呼叫regex.matches()方法就可以找到url的集合。示例**如下:
文字中提取url的
public
static
void
main(
string
args)
console.read();}/*
* */現在,要求變了,不僅要找出url,還要找出每個url的協議和網域名稱位址,這時就要用到正規表示式的分組功能了。分組是要匹配的模式pattern用小括號括起來,分成不同的組,如可以把上面例子中的模式改為:string pattern = @"\b(?\s+)://(?\s+)\b"; 這樣就用括號分成了兩個組(實際上是三個組,因為匹配本身可以看做乙個大組),"?"和"?"定義了每個組的別名protocol和address,這不是必須的,只是方便我們獲取需要的組。示例**如下:
提取url協議和位址的示例
C 正規表示式類Match和Group類的理解
正規表示式可以看做一種有特定功能的小型程式語言,在一段文字中定位子字串。利用正規表示式可以快速地分析大量的文字以找到特定的字元模式 提取 編輯 替換或刪除文字子字串 或將提取的字串新增到集合。正規表示式的基本語法可參見 深入淺出之正規表示式 一 深入淺出之正規表示式 二 c 命名空間system.t...
正規表示式 exec和match方法
exec和match,前者是用於檢索符合regexp的字串,後者是在字串內檢索指定的值,同樣返回字串。在用法上 match 可match字串和正則 stringobject.match searchvalue stringobject.match regexp exec 接受引數為字串 exec的用...
正規表示式match和exec的區別
exec是正則的方法,而match是string的方法 exec與全域性是否定義無關係,只匹配乙個,而match則於全域性相關聯,當定義全域性時,match將匹配所有的,當定義為非全域性,兩者執行結果相同 如果string種有多個與正則匹配的值,那麼第乙個exec匹配string中匹配的第乙個值,第...