asp.net apiRegex

來源:互聯網
上載者:User

除了 asp教程.net 驗證控制項,在.net 中使用Regex的大多數情況都要使用 system.text.regularexpressions 命名空間中發現的類。特別是那些您希望熟悉的主類 regexmatchmatchcollection

順便說一下,Regex縮寫樣式 regex 的發音究竟是 /reg-eks/ 還是 /rej-eks/,還有一些爭議。本人傾向於後者,但兩種發音都有專家贊同,所以選擇哪個發音由您自己決定。

regex 類有大量的方法和屬性,如果您以前沒有用過它,可能會感到無所適從。下面匯總了一些最常用的方法:

方法

說明

escape / unescape

字串中的轉義元字元,用作運算式中的文字。

ismatch

如果Regex在輸入字串中發現匹配,返回“ture”。

match

如果在輸入字串中發現匹配,則返回匹配對象。

matches

如果在輸入字串中發現包含任何或全部匹配,則返回匹配集合對象。

replace

用給定的替換字串替換輸入字串中的匹配。

split

將輸入字串拆分成用Regex匹配分開的數組元素時,返回數組字串。

除了指定很多方法外,還有一些選項可以指定,通常在 regex 物件建構函數中。由於這些選項是位屏蔽的一部分,或許可以同時指定這些選項(如,可以同時指定 multiline 和 singleline)。

方法

說明

compiled

當在迴圈中執行許多匹配操作時使用此選項。這可以節省每一迴圈的分析運算式步驟。

multiline

它與輸入字串中的行數沒有關係。確切地說,它只修改 ^$ 的方式,以便匹配行開始 (bol) 和行結尾 (eol),而不是匹配整個輸入字串的開始和結尾。

ignorecase

使模式在匹配搜尋字串時忽略大小寫。

ignorepatternwhitespace

允許根據需要在模式中包括任意數量的空白地區,也支援使用 (?# 注釋 #) 文法在模式中加入注釋。

singleline

它與輸入字串中的行數沒有關係。更確切地說,它將導致 .(句點)元字元匹配任一字元,而不是除 n 之外的任一字元(預設情況)。

使用Regex常執行的操作包括:驗證、匹配和替換。大多數情況下,可以使用 regex 類的靜態方法完成這些操作,不需要執行個體化 regex 類本身。要執行驗證,全部要做的就是必建或找到正確的運算式,然後使用 regex 類的 ismatch() 方法將運算式應用到輸入字串中。例如,下面的函數示範了如何使用Regex驗證郵遞區號:

private void validatezipbutton_click(object sender, system.eventargs e){   string zipregex = @"^d{5}$";   if(regex.ismatch(ziptextbox.text, zipregex))   {      resultlabel.text = "zip is valid!";   }   else   {      resultlabel.text = "zip is invalid!";   }}

類似的,可以使用靜態 replace() 方法將匹配替換為特定字串,如下所示:

string newtext = regex.replace(inputstring, pattern, replacementtext);

最後,可以使用如下代碼遍曆輸入字串的匹配集合:

private void matchbutton_click(object sender, system.eventargs e){   matchcollection matches = regex.matches(searchstringtextbox.text, matchexpressiontextbox.text);   matchcountlabel.text = matches.count.tostring();   matcheslabel.text = "";   foreach(match match in matches)   {      matcheslabel.text += "found" + match.tostring() + " at position " + match.index + ".<br>";   }}

通常,在您需要指定預設以外的方式時,需要執行個體化 regex 類的執行個體。特別是在設定選項時。例如,要建立忽略大小寫和模式空白地區的 regex 執行個體,然後檢索與該運算式匹配的集合,則應使用如下代碼:

regex re = new regex(pattern,    regexoptions.ignorecase | regexoptions.ignorepatternwhitespace);matchcollection mc = re.matches(inputstring);

本文的下載檔案中包括這些樣本的完整使用版本,與簡單 asp.net教程 頁中的一樣。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.