程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 淺談C#中正則表達式的運用

淺談C#中正則表達式的運用

編輯:C#入門知識

淺談C#中正則表達式的運用。本站提示廣大學習愛好者:(淺談C#中正則表達式的運用)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談C#中正則表達式的運用正文


目前為止,許多編程言語和工具都包括對正則表達式的支持,C#也不例外,C#根底類庫中包括有一個命名空間(System.Text.RegularExpressions)和一系列可以充沛發揚規則表達式威力的類(Regex、Match、Group等)。那麼,什麼是正則表達式,怎樣定義正則表達式呢?

一、正則表達式根底

什麼是正則表達式

在編寫字符串的處置順序時,常常會有查找契合某些復雜規則的字符串的需求。正則表達式就是用於描繪這些規則的工具。換句話說,正則表達式就是記載文本規則的代碼。

通常,我們在運用WINDOWS查找文件時,會運用通配符(*和?)。假如你想查找某個目錄下的一切Word文檔時,你就可以運用*.doc停止查找,在這裡,*就被解釋為恣意字符串。和通配符相似,正則表達式也是用來停止文本婚配的工具,只不過比起通配符,它能更准確地描繪你的需求——當然,代價就是更復雜。

一個復雜的例子——驗證電話號碼

學習正則表達式的最好辦法是從例子開端,上面我們從驗證電話號碼開端,一步一步的理解正則表達式。

在我們國度,電話號碼(如:0379-65624150)通常包括3到4為以0掃尾的區號和一個7或8為的號碼,兩頭通常以連字符'-'隔開。在這個例子中,首先我們要引見一個元字符\d,它用來婚配一個0到9的數字。這個正則表達式可以寫成:^0\d{2,3}-\d{7,8}$

我們來對他停止剖析,0婚配數字“0”,\d婚配一個數字,{2,3}表示反復2到3次,-只婚配”-”本身,接上去的\d異樣婚配一個數字,而 {7,8}則表示反復7到8次。當然,電話號碼還可以寫成 (0379)65624150,這裡就交給讀者完成。

元字符

在下面的例子中,我們接觸到了一個元字符\d,正如你所想的,正則表達式還有很多像\d一樣的元字符,下表列出了一些常用的元字符:

限定符

限定符又叫反復描繪字符,表示一個字符要呈現的次數。比方我們在婚配電話號碼時運用的{3,4}就表示呈現3到4次。常用的限定符有:

 正文

語法:(?#comment)

   例如:2[0-4]\d(?#200-249)|25[0-5](?#250-255)|[01]?\d\d?(?#0-199)

   留意:假如運用正文,則需求格外留意不要在正文的小括號後面呈現空格、換行符等一些字符,假如可以疏忽這些字符,則最好運用“疏忽形式裡的空白符”選項,即C#中RegexOptions枚舉的IgnorePatternWhitespace選項(C#中的RegexOptions枚舉上面將會提到)。

 C#中的處置選項

在C#中,可以運用RegexOptions 枚舉來選擇C#對正則表達式的處置方式。上面是MSDN中RegexOptions 枚舉的成員引見:

 C#中Capture類、Group類、Match類

Capture類:表示單個子表達式捕捉中的後果。Capture類表示單個成功捕捉中的一個子字符串。該類沒有公共結構函數,可以從Group類或許Match類中失掉一個Capture類的對象集合。Capture類有三個常用屬性,辨別是Index、Length和Value。Index表示捕捉的子字符串的第一個字符的地位。Length表示捕捉的子字符串的長度,Value表示捕捉的子字符串。

Group類:表示正則表達式中分組的信息。該類提供了對分組婚配的正則表達式的支持。該類沒有公共結構函數。可以從Match類中失掉一個Group類的集合。假如正則表達式中的分組已命名,則可以運用名字對其停止訪問,假如沒有命名,則可以采用下標訪問。留意:每一個Match的Groups集合中的第0個元素(Groups[0])都是這個Match捕捉的字符串,也是Capture的Value。

Match類:表示單個正則表達式婚配的後果。該類異樣沒有公共結構函數,可以從Regex類的Match()辦法失掉該類的一個實例,也可以運用Regex類的Matches()辦法失掉給類的一個集合。

這三個類都能表示單個正則表達式婚配的後果,但Match類失掉的更為詳細,包括捕捉和分組信息。所以,Match類在這個三個類中是最常用的。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved