VBS正則表達(dá)式后向引用的詳細(xì)介紹-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“VBS正則表達(dá)式后向引用的詳細(xì)介紹”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

十年的邱縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整邱縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“邱縣網(wǎng)站設(shè)計(jì)”,“邱縣網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

后向引用

正則表達(dá)式一個(gè)最重要的特性就是將匹配成功的模式的某部分進(jìn)行存儲(chǔ)供以后使用這一能力。請(qǐng)回想一下,對(duì)一個(gè)正則表達(dá)式模式或部分模式兩邊添加圓括號(hào)將導(dǎo)致這部分表達(dá)式存儲(chǔ)到一個(gè)臨時(shí)緩沖區(qū)中??梢允褂梅遣东@元字符 '?:', '?=', or '?!' 來(lái)忽略對(duì)這部分正則表達(dá)式的保存。

所捕獲的每個(gè)子匹配都按照在正則表達(dá)式模式中從左至右所遇到的內(nèi)容存儲(chǔ)。存儲(chǔ)子匹配的緩沖區(qū)編號(hào)從 1 開(kāi)始,連續(xù)編號(hào)直至較大 99 個(gè)子表達(dá)式。每個(gè)緩沖區(qū)都可以使用 '\n' 訪問(wèn),其中n 為一個(gè)標(biāo)識(shí)特定緩沖區(qū)的一位或兩位十進(jìn)制數(shù)。

后向引用一個(gè)最簡(jiǎn)單,最有用的應(yīng)用是提供了確定文字中連續(xù)出現(xiàn)兩個(gè)相同單詞的位置的能力。請(qǐng)看下面的句子:

Is is the cost of of gasoline going up up?

根據(jù)所寫(xiě)內(nèi)容,上面的句子明顯存在單詞多次重復(fù)的問(wèn)題。如果能有一種方法無(wú)需查找每個(gè)單詞的重復(fù)現(xiàn)象就能修改該句子就好了。下面的 Visual Basic Scripting Edition 正則表達(dá)式使用一個(gè)子表達(dá)式就可以實(shí)現(xiàn)這一功能。

/\b([a-z]+) \1\b/gi

等價(jià)的 VBScript 表達(dá)式為:

"\b([a-z]+) \1\b"

在這個(gè)示例中,子表達(dá)式就是圓括號(hào)之間的每一項(xiàng)。所捕獲的表達(dá)式包括一個(gè)或多個(gè)字母字符,即由'[a-z]+' 所指定的。該正則表達(dá)式的第二部分是對(duì)前面所捕獲的子匹配的引用,也就是由附加表達(dá)式所匹配的第二次出現(xiàn)的單詞。'\1'用來(lái)指定第一個(gè)子匹配。單詞邊界元字符確保只檢測(cè)單獨(dú)的單詞。如果不這樣,則諸如 "is issued" 或 "this is" 這樣的短語(yǔ)都會(huì)被該表達(dá)式不正確地識(shí)別。

在 Visual Basic Scripting Edition 表達(dá)式中,正則表達(dá)式后面的全局標(biāo)志 ('g') 表示該表達(dá)式將用來(lái)在輸入字符串中查找盡可能多的匹配。大小寫(xiě)敏感性由表達(dá)式結(jié)束處的大小寫(xiě)敏感性標(biāo)記 ('i') 指定。多行標(biāo)記指定可能出現(xiàn)在換行符的兩端的潛在匹配。對(duì) VBScript 而言,在表達(dá)式中不能設(shè)置各種標(biāo)記,但必須使用RegExp 對(duì)象的屬性來(lái)顯式設(shè)置。

使用上面所示的正則表達(dá)式,下面的 Visual Basic Scripting Edition 代碼可以使用子匹配信息,在一個(gè)文字字符串中將連續(xù)出現(xiàn)兩次的相同單詞替換為一個(gè)相同的單詞:

var ss = "Is is the cost of of gasoline going up up?.\n";var re = /\b([a-z]+) \1\b/gim;       //創(chuàng)建正則表達(dá)式樣式.var rv = ss.replace(re,"$1");   //用一個(gè)單詞替代兩個(gè)單詞.

最接近的等價(jià)  VBScript 代碼如下:

Dim ss, re, rvss = "Is is the cost of of gasoline going up up?." & vbNewLineSet re = New RegExpre.Pattern = "\b([a-z]+) \1\b"re.Global = Truere.IgnoreCase = Truere.MultiLine = Truerv = re.Replace(ss,"$1")

請(qǐng)注意在 VBScript 代碼中,全局、大小寫(xiě)敏感性以及多行標(biāo)記都是使用RegExp 對(duì)象的適當(dāng)屬性來(lái)設(shè)置的。

replace 方法中使用$1 來(lái)引用所保存的第一個(gè)子匹配。如果有多個(gè)子匹配,則可以用$2,$3等繼續(xù)引用。

后向引用的另一個(gè)用途是將一個(gè)通用資源指示符 (URI) 分解為組件部分。假定希望將下述的URI 分解為協(xié)議 (ftp, http, etc),域名地址以及頁(yè)面/路徑:

/tupian/20230522/ Visual Basic Scripting Edition,為:

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

對(duì) VBScript 為:

"(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)"

第一個(gè)附加子表達(dá)式是用來(lái)捕獲該 web 地址的協(xié)議部分。該子表達(dá)式匹配位于一個(gè)冒號(hào)和兩個(gè)正斜杠之前的任何單詞。第二個(gè)附加子表達(dá)式捕獲該地址的域名地址。該子表達(dá)式匹配不包括 '^'、 '/' 或 ':' 字符的任何字符序列。第三個(gè)附加子表達(dá)式捕獲網(wǎng)站端口號(hào)碼,如果指定了該端口號(hào)。該子表達(dá)式匹配后跟一個(gè)冒號(hào)的零或多個(gè)數(shù)字。最后,第四個(gè)附加子表達(dá)式捕獲由該 web 地址指定的路徑以及\或者頁(yè)面信息。該子表達(dá)式匹配一個(gè)和多個(gè)除'#' 或空格之外的字符。

將該正則表達(dá)式應(yīng)用于上面所示的 URI 后,子匹配包含下述內(nèi)容:

RegExp.$1 包含 "http"

RegExp.$2 包含 "msdn.microsoft.com"

RegExp.$3 包含 ":80"

RegExp.$4 包含 "/scripting/default.htm"

“VBS正則表達(dá)式后向引用的詳細(xì)介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

當(dāng)前題目:VBS正則表達(dá)式后向引用的詳細(xì)介紹-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://muchs.cn/article42/dspdhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、微信小程序、響應(yīng)式網(wǎng)站、外貿(mào)建站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名