C 正規表示式 精通版

2021-09-07 14:35:13 字數 3394 閱讀 2277

1、正則所需要的命名空間是

using system.text.regularexpressions

2、建立regex物件

new regex(string pattern,regexoptions options)

選項(options)注釋

none:指定不設定任何選項

ignorecase:指定不區分大小寫的匹配 。

multiline:多行模式。 更改 ^ 和 $ 的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個字串的開頭和結尾匹配

explicitcapture:指定唯一有效的捕獲是顯式命名或編號的 (?…) 形式的組

compiled:指定將正規表示式編譯為程式集

singleline:指定單行模式。 更改點 (.) 的含義,以使它與每個字元(而不是除 \n 之外的所有字元)匹配

ignorepatternwhitespace:消除模式中的非轉義空白並啟用由 # 標記的注釋

righttoleft:指定搜尋從右向左而不是從左向右進行

ecmascript:為表示式啟用符合 ecmascript 的行為

cultureinvariant:指定忽略語言中的區域性差異

3、匹配

摘要:

指示所指定的正規表示式是否使用指定的匹配選項在指定的輸入字串中找到了匹配項。

語法:

ismatch(string input, string pattern, regexoptions options)

引數:

input:

要搜尋匹配項的字串。

pattern:

要匹配的正規表示式模式。

options:

列舉值的乙個按位組合,這些列舉值提供匹配選項。

例項:字串中是否包含數字

方式一,靜態方法

bool bl = regex.ismatch("abc123", @"\d+");

response.write(bl); 結果:true

方式二,例項方法

regex reg = new regex(@"\d+");

bool bl = reg.ismatch("abc123");

response.write(bl); 結果:true

4、替換

摘要:在指定的輸入字串內,使用指定的替換字串替換與指定正規表示式匹配的所有字串

語法:

replace(string input, string pattern, string replacement, regexoptions options)

引數:

input:

要搜尋匹配項的字串。

pattern:

要匹配的正規表示式模式。

replacement:

替換字串。

options:

列舉值的乙個按位組合,這些列舉值提供匹配選項。如:regexoptions.ignorecase,指定不區分大小寫的匹配

例項:字串中所有字母替換為空(string.empty)

方式一,靜態方法

string str = regex.replace("abc123", "[a-z]", string.empty, regexoptions.ignorecase);

response.write(str); 結果:123

方式二,例項方法

regex reg = new regex(@"[a-z]", regexoptions.ignorecase);

string str = reg.replace("abc123",string.empty);

response.write(str); 結果:123

5、獲取

語法:

match(string input, string pattern, regexoptions options)

摘要:

使用指定的匹配選項和超時間隔在輸入字串中搜尋指定的正規表示式的第乙個匹配項

語法:

matches(string input, string pattern, regexoptions options)

摘要:

使用指定的匹配選項和超時間隔在指定的輸入字串中搜尋指定的正規表示式的所有匹配項

引數:

input:

要搜尋匹配項的字串。

pattern:

要匹配的正規表示式模式。

options:

列舉值的乙個按位組合,這些列舉值提供匹配選項。

方法:nextmatch 返回下乙個成功匹配的match物件

result

value 返回匹配的字串

length 匹配的長度

index 第乙個匹配內容在字串中的起始位置

groups 返回乙個分組物件集合

success 根據是否匹配成功返回ture or false

例項一:提取字串中所有的數字

regex reg = new regex(@"\d+");

match match = reg.match("1+2-3");

stringbuilder str = new stringbuilder();

while (match.success)

response.write(str.tostring()); //結果:123

例項二:提取字串中所有的數字

方式一,靜態方法

stringbuilder str = new stringbuilder();

foreach (match m in regex.matches("1+2-3", @"(\d+)"))

response.write(str.tostring()); //結果:123

方式二,例項方法

stringbuilder str = new stringbuilder();

regex reg = new regex(@"\d+", regexoptions.ignorecase);

matchcollection matchs = reg.matches("1+2-3");

foreach (match item in matchs)

response.write(str.tostring()); //結果:123

精通正規表示式

我只看了前面兩三章 這書的核心是4 5 6章 精通正規表示式 這本書的第四章和第六章比較值得看 1.多選結構 mm gg 表示匹配 mm 或 gg 2.忽略大小寫 s source dest i 搜尋source,將其替換為dest,此處的i只對source起作用,而不會作用於dest。3.單詞分界...

精通正規表示式 1 正規表示式入門

1 能檢查多個檔案,挑出包含重複單詞的行,高亮標記每個重複單詞 使用標準ansi的轉義字元列 同時必須顯示這行文字來自哪個檔案。2 能跨行查詢,即使兩個單詞乙個在某行末尾而另乙個在下一行的開頭,也算重複單詞。3 能進行不區分大小寫的查詢,例如 the the.重複單詞之間可以出現任意數量的空白字元 ...

《精通正規表示式》筆記

1.多選結構 mm gg 表示匹配 mm 或 gg 2.忽略大小寫 s source dest i 搜尋source,將其替換為dest,此處的i只對source起作用,而不會作用於dest。3.單詞分界符 用來匹配單詞的開始 用來匹配單詞的結束 比如 cat 匹配以 cat 結尾的單詞,如scat...