C 中正規表示式的使用

2021-08-09 12:16:16 字數 3154 閱讀 6849

c#中使用正規表示式主要是通過regex類來實現,使用前需要包含命名空間:usingsystem.text.regularexpressions

1  regex類中的主要方法

c#中通過regex類使用正則主要有兩種方法,一種是通過建立regex物件,另外一種是在臨時使用正則的情景下,無需建立regex例項,直接使用包裝器函式regex.函式成員

1.1 建立regex物件

regex myregex = new regex(string pattern);

— string pattern  表示設計的正規表示式

— 輸入正規表示式時,可以在雙引號前加上@符號作為開頭,這樣就不需要再對其中的轉義字元加上\

主要方法的使用:

(1) ismatch()

public bool ismatch( string input )

指示 regex 建構函式中指定的正規表示式是否在指定的輸入字串中找到了匹配項。

例如:驗證輸入的**號碼格式是否正確

static void main(string args)

-)\d$";

regex myregex = new regex(pattern);

if(myregex.ismatch(input))

console.readkey();

}

(2) match()

public match match( string input )

在輸入的字串中搜尋regex 建構函式中指定的正規表示式的第乙個匹配項

(3) matches()

public matchcollection matches( string input )

在指定的輸入字串中搜尋正規表示式的所有匹配項

例如:從字串資訊中提取每個人的姓名及性別             

static void main(string args)

性別:",m.groups[1], m.groups[2]);

}console.readkey();

}結果:姓名:jx 性別:女

姓名:ll 性別:男

match.groups[ ]返回的是對應子表示式的匹配資訊,下標數字從1開始。其中m.groups[1]返回的是正規表示式中第乙個子表示式(\s+)的匹配資訊,m.groups[2]返回的則是第二個子表示式(\w)的匹配資訊,而m.groups[0]則返回的是整個正規表示式的匹配結果。

(4) replace()

public string replace( string input, string replacement )

在指定的輸入字串中,把所有匹配正規表示式模式的所有匹配的字串替換為指定的替換字串

例如:去除字元間多餘的空格              

static void main(string args)

";regex myregex = new regex(pattern);

string output = myregex.replace(input, " ");

console.writeline("", output);

console.readkey();

}結果:hello world

(5)split()

public string split( string input )

把輸入字串分割為子字串陣列,根據在 regex 建構函式中指定的正規表示式模式定義的位置進行分割

例如:把字串中的每個單詞提取出來           

static void main(string args)

", s);

console.readkey();

}結果為:

after

alltomorrow

isanother

day

1.2 regex.函式成員

這種無需建立regex例項的方式下,在呼叫方法成員時,正規表示式在方法成員的引數pattern中構建。      

(1)  public bool ismatch( string input, string pattern)

(2)  public match match( string input, string pattern)

(3)  public matchcollection matches( string input , string pattern)

(4)  public string replace( string input, string pattern, string replacement )

(5)  public string split( string input, string pattern )

2 c#中的命名捕獲

.net中對正規表示式支援命名捕獲,即允許對子表示式進行命名。

語法:"(?exp)"

匹配exp並捕獲文字到名稱為name的組裡,通過match.groups["name"]取得分組值,而一般的子表示式形式"(exp)"則是自動分配到從1開始的組中,通過match.groups[1]取得對應分組值。

其他應用:

"\k"   引用回溯引用

"$"  替換模式中

例如:從字串資訊中提取每個人的姓名及性別  

static void main(string args)

性別:", m.groups["name"], m.groups["***"]);

}console.readkey();

}結果為:

姓名:jx 性別:女

姓名:ll 性別:男

PLSQL中正規表示式使用

原 2018年10月08日 14 48 11 寫 也要符合基本法 閱讀數 2008 更多分類專欄 oracle學習筆記 regexp like 返回指定字串是否符合給定的正規表示式 regexp substr 返回在指定字串中截取出的符合給定正規表示式的子串 regexp instr 返回在指定字串...

python中正規表示式使用

1 正規表示式的常用操作符 操作符說明例項 表示任何單個字元 字符集,對單個字元給出取值範圍 abc 表示a b c,a z 表示a到z單個字元 非字符集,對單個字元給出排除範圍 abc 表示非a或b或c的單個字元 前乙個字元0次或無限次擴充套件 abc 表示ab abc abcc abccc等 前...

JavaScript中正規表示式的使用

結果是 oranges are round,and oranges are juicy.例 結果是 twas the night before christmas.例 結果是 ith,john 2 search search通過正規表示式查詢相應的字串,只是判斷有無匹配的字串。如果查詢成功,sear...