真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

107-正則表達(dá)式介紹-創(chuàng)新互聯(lián)

什么是正則表達(dá)式?
英文Regular Expression,是計算機(jī)科學(xué)的一個重要概念,她使用一種數(shù)學(xué)算法來解決計算機(jī)程序中的文本檢索,匹配等問題,正則表達(dá)式語言是一種專門用于字符串處理的語言。在很多語言中都提供了對它的支持,c#也不例外,它可以幫我們解決下面的問題:
  1,檢索:通過正則表達(dá)式,從字符串中獲取我們想要的部分
  2,匹配:判斷給定的字符串是否符合正則表達(dá)式的過濾邏輯

專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)漢南免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

可以認(rèn)為正則表達(dá)式表述了一個字符串的書寫規(guī)則。

我們可以用正則表達(dá)式判斷用戶輸入的密碼是否合法,判斷用戶輸入的郵箱格式是否合法等等。

正則表達(dá)式的組成

正則表達(dá)式就是由普通字符以及特殊字符(稱為元字符)組成的文字模式。該模式描述在查找文字主體時待匹配的一個或多個字符串。

常用的操作正則表達(dá)式的方法和委托

下面學(xué)習(xí)一下位于System.Text.RegularExpressions下的Regex類的一些靜態(tài)方法和委托
1,靜態(tài)方法IsMatch (返回值是一個布爾類型,用于判斷指定的字符串是否與正則表達(dá)式字符串匹配,它有三個重載方法)
bool IsMatch(string input, string pattern);
參數(shù): input:    要搜索匹配項的字符串。
pattern:   要匹配的正則表達(dá)式模式。
返回結(jié)果: 如果正則表達(dá)式找到匹配項,則為 true;否則,為 false。
bool IsMatch(string input, string pattern, RegexOptions options);
參數(shù): input:    要搜索匹配項的字符串。
pattern:   要匹配的正則表達(dá)式模式。
options:   枚舉值的一個按位組合,這些枚舉值提供匹配選項。
返回結(jié)果: 如果正則表達(dá)式找到匹配項,則為 true;否則,為 false。
bool IsMatch(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);
參數(shù): input:    要搜索匹配項的字符串。
pattern:   要匹配的正則表達(dá)式模式。
options:   枚舉值的一個按位組合,這些枚舉值提供匹配選項。
matchTimeout: 超時間隔,或 System.Text.RegularExpressions.Regex.InfiniteMatchTimeout 指示該方法不應(yīng)超時。
返回結(jié)果: 如果正則表達(dá)式找到匹配項,則為 true;否則,為 false。

關(guān)于參數(shù)RegexOptions

它是一個枚舉類型,有以下枚舉值

RegexOptions枚舉值

內(nèi)聯(lián)標(biāo)志
簡單說明
ExplicitCapture

只有定義了命名或編號的組才捕獲
IgnoreCase

不區(qū)分大小寫
IgnorePatternWhitespace
x
消除模式中的非轉(zhuǎn)義空白并啟用由 # 標(biāo)記的注釋。
MultiLine
m
多行模式,其原理是修改了^和$的含義
SingleLine
s
單行模式,和MultiLine相對應(yīng)

內(nèi)聯(lián)標(biāo)志可以更小力度(一組為單位)的定義匹配選項

靜態(tài)方法Match(System.Text.RegularExpressions)

靜態(tài)方法Match,使用指定的匹配選項在輸入字符串中搜索指定的正則表達(dá)式的第一個匹配項。 返回一個包含有關(guān)匹配的信息的對象。同樣有三個重載方法,參數(shù)和IsMatch方法相同。此外,在Regex類中,還有一個同名的非靜態(tài)方法,適用于多個實例的情況下,效率更高一些。

Match Match(string input, string pattern);

Match Match(string input, string pattern, RegexOptions options);

Match Match(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);

靜態(tài)方法Matches(System.Text.RegularExpressions)

靜態(tài)方法Matches,在指定的輸入字符串中搜索指定的正則表達(dá)式的所有匹配項。跟上面方法不同之處,就是這個方法返回的是所有匹配項,他同樣有三個重載方法,并且參數(shù)和Match方法完全相同
 MatchCollection Matches(string input, string pattern);
 MatchCollection Matches(string input, string pattern, RegexOptions options);
 MatchCollection Matches(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);

Replaces函數(shù)(System.Text.RegularExpressions)

我們知道正則表達(dá)式主要是實現(xiàn)驗證,提取,分割,替換字符的功能.Replace函數(shù)是實現(xiàn)替換功能的.
1 )Replace(string input,string pattern,string replacement)  
//input是源字符串,pattern是匹配的條件,replacement是替換的內(nèi)容,就是把符合匹配條件pattern的內(nèi)容轉(zhuǎn)換成它
比如string result = Regex.Replace("abc", "ab", "##");  
//結(jié)果是##c,就是把字符串a(chǎn)bc中的ab替換成##
2 )Replace(string input,string pattern,string replacement,RegexOptions options)    
//RegexOptions是一個枚舉類型,用來做一些設(shè)定.
//前面用注釋時就用到了RegexOptions.IgnorePatternWhitespace.如果在匹配時忽略大小寫就可以用RegexOptions.IgnoreCase
比如string result = Regex.Replace("ABc", "ab", "##",RegexOptions.IgnoreCase);
如果是簡單的替換用上面兩個函數(shù)就可以實現(xiàn)了.但如果有些復(fù)雜的替換,比如匹配到很多內(nèi)容,不同的內(nèi)容要替換成不同的字符.就需要用到下面兩個函數(shù)
3 )Replace(string input,string pattern,MatchEvaluator evaluator);   
//evaluator是一個代理,其實簡單的說是一個函數(shù)指針,把一個函數(shù)做為參數(shù)參進(jìn)來
//由于C#里沒有指針就用代理來實現(xiàn)類似的功能.你可以用代理綁定的函數(shù)來指定你要實現(xiàn)的復(fù)雜替換.
4 )Replace(string input,string pattern,MatchEvaluator evaluator,RegexOptions options);
//這個函數(shù)上上面的功能一樣,只不過多了一點枚舉類型來指定是否忽略大小寫等設(shè)置

靜態(tài)方法Split拆分文本

使用正則表達(dá)式匹配的位置,將文本拆分為一個字符串?dāng)?shù)組,同樣有三個重載方法,返回值為字符串?dāng)?shù)組
string[] Split(string input, string pattern);
string[] Split(string input, string pattern, RegexOptions options);
string[] Split(string input, string pattern, RegexOptions options, TimeSpanmatchTimeout);



@符號

我們經(jīng)常在正則表達(dá)式字符串前面加上@字符,這樣不讓編譯器去解析其中的轉(zhuǎn)義字符,而作為正則表達(dá)式的語法(元字符)存在。


string s =@"www.baidu.com \n lkjsdflkj";

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞名稱:107-正則表達(dá)式介紹-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/spjis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部