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

正文內(nèi)容

c下利用正則表達(dá)式實(shí)現(xiàn)字符串搜索功能的方法-資料下載頁(yè)

2025-01-08 08:08本頁(yè)面
  

【正文】 行為。此選項(xiàng)僅可與 IgnoreCase 和 Multiline 標(biāo)志一起使用。將 ECMAScript 同任何其他標(biāo)志一起使用將導(dǎo)致異常。 例如, Find_po在字開(kāi)頭處查找以 po開(kāi)頭的字符串: static void Find_po() { string text = @ I can not find my position in Beijing 。 string pattern = @\bpo\S*ion\b。 MatchCollection matches = (text, pattern, )。 WriteMatches(text, matches)。 } 這段代碼還使用了名稱(chēng)空間 RegularExpressions: using System。 using 。 匹配、組和捕獲 一般表達(dá)式的一個(gè)很好的特性是可以把字符組合起來(lái),方式與 C中的復(fù)合語(yǔ)句一 樣。在 C中,可以通過(guò)把任意數(shù)量的語(yǔ)句放在花括號(hào)中的方式把它們組合在一起。其結(jié)果就像一個(gè)復(fù)合語(yǔ)句那樣。在一般表達(dá)式模式中,也可以把任何字符組合起來(lái)(包括元字符和轉(zhuǎn)義序列),像處理一個(gè)字符那樣處理它們。唯一的區(qū)別是要使用圓括號(hào),而不是花括號(hào),得到的序列成為一個(gè)組。 例如,模式 (an)+定位序列 an 的任以重復(fù)。量詞 +只應(yīng)用于它前面的一個(gè)字符,但因?yàn)槲覀儼炎址M合起來(lái)了,所以它現(xiàn)在把重復(fù)的 an 作為一個(gè)單元來(lái)對(duì)待。 (an).應(yīng)用到輸入文本 bananas came to Europe late in the annals of history上,會(huì)從 bananas 中選擇出anan。另一方面,如果使用 an+,則將從 annals中選擇 ann,從 bananas中選擇出兩個(gè) an。為什么 (an)+選擇的是 anan,而沒(méi)有把單個(gè)的 an作為一個(gè)匹配。匹配規(guī)則是不能重復(fù)的,如果有可能重復(fù),在默認(rèn)情況下就選擇較長(zhǎng)的匹配。 但是,組的功能要比這強(qiáng)大得多。在默認(rèn)情況下,把模式的一部分組合為一個(gè)組時(shí),就要求一般表達(dá)式引擎記住可以按照這個(gè)組來(lái)匹配,也可以按照整個(gè)模式來(lái)匹配。換言之,可以把組當(dāng)作一個(gè)要匹配的模式,如果要把 字符串分解為各個(gè)部分,這種模式就是非常有效的。 例如, URI 的 格 式 是 :// : ,其中端口是可選的。它的一個(gè)樣例是 URI 中提取協(xié)議、地址和端口,而且緊鄰URI 的 后 面 可 能 有 空 白 ( 但 沒(méi) 有 標(biāo) 點(diǎn) 符 號(hào) ), 就 可 以 使 用 下 面 的 表 達(dá) 式 :\b(\S+)://(\S+)(?::(\S+))?\b 該表達(dá)式的工作方式如下:首先,前導(dǎo)和尾部的 \b序列確保只需要考慮完全是字的文本部分,在這個(gè)文本部分中,第一組 (\S+)://會(huì)選擇一個(gè)或多 個(gè)不適空白的字符,其后是 ://。在 HTTPURI 的開(kāi)頭會(huì)選擇出 存儲(chǔ)為一個(gè)組。后面的 (\S+)則在上述 URI 中選擇 . ,這個(gè)組在遇到詞的結(jié)尾時(shí)或標(biāo)記另一個(gè)組的冒號(hào)(:)時(shí)結(jié)束。 下一個(gè)組選擇端口(本例是 :8080)。后面的?表示這個(gè)組在匹配中是可選的,如果沒(méi)有 :xxxx,也不會(huì)妨礙匹配的標(biāo)記。 這是非常重要的,因?yàn)槎丝谠?URI 中一般不指定,實(shí)際上,在大多數(shù)情況下, URI 是沒(méi)有端口號(hào)的。但是,事情會(huì)比較復(fù)雜。如果要求冒號(hào) 可以出現(xiàn),也可以不出現(xiàn),但不希望把這個(gè)冒號(hào)也存儲(chǔ)在組中。為此,可以嵌套兩個(gè)組:內(nèi)部的 (\S+)組選擇冒號(hào)后面的內(nèi)容(本例中是 8080),外面的組包含內(nèi)部的組,后面是一個(gè)冒號(hào),該冒號(hào)又在序列 ?:的后面。這個(gè)序列表示該組不應(yīng)保存(只需要保存 8080,不需要保存 :8080)。不要把這兩個(gè)冒號(hào)混淆了,第一個(gè)冒號(hào)是序列 ?:的一部分,表示不保存這個(gè)組,第二個(gè)冒號(hào)是要搜索的文本。 在這個(gè)字符串上運(yùn)行該模式: I always visit 得到的匹 配是 。在這個(gè)匹配中,僅提到了三個(gè)組,還有第四個(gè)組表示匹配本身。理論上,每個(gè)組都可以選擇 0 次、 1 次或者多次匹配。單個(gè)的匹配就稱(chēng)為捕獲。在第一個(gè)組(\S+),有一個(gè)捕獲 。第二個(gè)組也有一個(gè)捕獲 . ,但第三個(gè)組沒(méi)有捕獲,因?yàn)樵谶@個(gè) URI 中沒(méi)有端口號(hào)。注意該字符串在其本身上包含第二個(gè) 它匹配于第一個(gè)組,但不會(huì)被搜索出來(lái),因?yàn)檎麄€(gè)搜索表達(dá)式不匹配于這部分文本。 再比如下面這個(gè)例子,以下代碼示例使用 來(lái)從 URL提取協(xié)議和端口號(hào)。例如, :8080。 String Extension(String url) { Regex r = new Regex(@^(? \w+)://[^/]+?(? :\d+)?/, )。 return (url).Result(${proto}${port})。 } 小結(jié) .NET 框架正則表達(dá)式類(lèi)是基類(lèi)庫(kù)的一部分,并且可以和面向公共語(yǔ)言運(yùn)行庫(kù)的任何語(yǔ)言或工具(包括 Visual Studio .NET)一起使用。本文給出了在 C下利用正則表達(dá)式實(shí)現(xiàn)字符串搜索功能的方法,通過(guò)對(duì) .NET框架下的正則表達(dá)式的研究及實(shí)例分析,總結(jié)了正則表達(dá)式的規(guī)則、選項(xiàng)等,方便以后朋友們的應(yīng)用。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1