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

正文內(nèi)容

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

2025-02-04 08:08 本頁(yè)面
 

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