freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c下利用正則表達(dá)式實現(xiàn)字符串搜索功能的方法(編輯修改稿)

2024-09-17 01:21 本頁面
 

【文章內(nèi)容簡介】 利用正則表達(dá)式實現(xiàn)字符串搜索 在C 下面將通過一個樣例的開發(fā),執(zhí)行并顯示一些搜索的結(jié)果,說明一般表達(dá)式的一些特性,以及如何在C。說明使用字符串時應(yīng)在前面加上符號@。 String Text=@I can not find my position in Beijing。 把這個文本稱為輸入字符串,本文先進(jìn)行一次純文本的搜索,這次搜索不帶任何轉(zhuǎn)義序列或一般表達(dá)式命令。假定要查找所有字符串ion,把這個搜索字符串稱為模式。使用一般表達(dá)式和上面聲明的變量Text,編寫出下面的代碼: String Pattern = ion。 MatchCollection Matches = (Text,Pattern,RegexOptions)。 foreach(Match NextMatch in Matches) { ()。 } 在這段代碼中,()。這個方法的參數(shù)是一些輸入文本、一個模式和RegexOptions每句中的一組可選標(biāo)志。Matches()返回MatchCollection,每個匹配都用一個 Match對象來表示。在上面的代碼中,只是在集合中迭代,使用Match類的Index屬性,返回輸入文本中匹配所在的索引。運(yùn)行這段代碼,將得到1個匹配項。 一般集合的功能主要取決于模式字符串。原因是模式字符串不僅僅包含純文本。如前所述。還包含元字符和轉(zhuǎn)義序列,元字符是給出命令的特殊字符,而轉(zhuǎn)義序列的工作方式與C的轉(zhuǎn)義序列相同,它們都是以反斜杠\開頭的字符,具有特殊的含義。例如,假定要查找以n開頭的字,就可以使用轉(zhuǎn)義序列\(zhòng)b,它表示一個字的邊界(字的邊界是以某個字母數(shù)字標(biāo)的字符開頭,或者后面是一個空白字符或標(biāo)點符號),下面編寫如下代碼: String Pattern = @\bn。 MatchCollection Matches = (Text,Pattern, )。 要在運(yùn)行時把\,反斜杠\不應(yīng)被C編譯器解釋為轉(zhuǎn)義序列。如果要查找以序列ion結(jié)尾的字,可以使用下面的代碼: String Pattern = @ion\b。 如果要查找以字母n開頭,以序列ion結(jié)尾的所有字,需要一個以\bn開頭,以ion\b結(jié)尾的模式,中間內(nèi)容怎么辦?需要告訴計算機(jī)n和ion中間的內(nèi)容可以是任意長度的字符,只要字符不是空白即可,正確的模式如下所示: String Pattern = @\bn\S*ion\b。 特定字符或轉(zhuǎn)義序列 大多數(shù)重要的正則表達(dá)式語言運(yùn)算符都是非轉(zhuǎn)義的單個字符。轉(zhuǎn)義符 \(單個反斜杠)通知正則表達(dá)式分析器反斜杠后面的字符不是運(yùn)算符。例如,分析器將星號 (*) 視為重復(fù)限定符,而將后跟星號的反斜杠 (\*) 視為 Unicode 字符 002A。 使用一般表達(dá)式要習(xí)慣的一點是,查看像這樣怪異的字符序列,但這個序列的工作是非常邏輯化的。轉(zhuǎn)義序列\(zhòng)S表示任何不適空白的字符。*稱為數(shù)量詞,其含義是前面的字符可以重復(fù)任意次,包括0次。序列\(zhòng)S*表示任何不適空白的字符。因此,上面的模式匹配于以n開頭,以ion結(jié)尾的任何單個字。下表中列出的字符轉(zhuǎn)義在正則表達(dá)式和替換模式中都會被識別。表1:特定字符或轉(zhuǎn)義序列 特定字符或轉(zhuǎn)義序列 含義 樣例 匹配的樣例 ^ 輸入文本的開頭 ^B B,但只能是文本中的第一個字符 $ 輸入文本的結(jié)尾 X$ X,但只能是文本中的最后一個字符 . 除了換行字符(\n)以外的所有單個字符 isation、ization * 可以重復(fù)0次或多次的前導(dǎo)字符 ra*t rat、raat等 + 可以重復(fù)1次或多次的前導(dǎo)字符 ra+t rt、rat、raat等 ? 可以重復(fù)0次或1次的前導(dǎo)字符 ra?t 只有rt和rat匹配 \s 任何空白字符 \sa [space]a,\ta,\na(\t和\n與C的\t和\n含義相同) \S 任何不是空白的字符 \SF aF,rF,cF,但不能是\tf \b 字邊界 ion\b 以ion結(jié)尾的任何字 \B 不是字邊界的位置 \BX\B 字中間的任何X 如果要搜索一個元字符,也可以通過帶有反斜杠的轉(zhuǎn)義字符來表示。例如,.表示除了換行字符以外的任何字符,而\.表示一個點。 可以把可替換的字符放在方括號中,請求匹配包含這些字符。例如,[1 c]表示字符可以是1或者是c。如果要搜索map或者man,可以使用序列ma[n p](僅指引號內(nèi)字符,下面雷同)。在方括號中,也可以制定一個范圍,例如[az]表示所有的小寫字母(使用連字號 () 允許指定連續(xù)字符范圍),[BF]表示B到F之間的所有大寫字母,[09]表示一個數(shù)字,如果要搜索一個整數(shù)(該序列只包含0到9的字符),就可以編寫[09]+(注意,使用+字符表示至少要有這樣一個數(shù)字,但可以有多個數(shù)字,所以83和3443等都是匹配的。) 下面看看一般表達(dá)式的結(jié)果
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1