VBS中正則表達式如何實現選擇與編組-創新互聯

這篇文章給大家分享的是有關VBS中正則表達式如何實現選擇與編組的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創新互聯成立于2013年,是專業互聯網技術服務公司,擁有項目成都網站制作、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元三水做網站,已為上家服務,為三水各地企業和個人服務,聯系電話:028-86922220

選擇與編組

選擇允許使用 '|' 字符來在兩個或多個候選項中進行選擇。通過擴展章節標題的正則表達式,可以將其擴充為不僅僅適用于章節標題的表達式。不過,這可沒有想象的那么直接。在使用選擇時,將匹配'|' 字符每邊最可能的表達式。你可能認為下面的 Visual Basic Scripting Edition 和 VBScript 表達式將匹配位于一行的開始和結束位置且后跟一個或兩個數字的 'Chapter' 或 'Section':

/^Chapter|Section [1-9][0-9]{0,1}$/"^Chapter|Section [1-9][0-9]{0,1}$"

不幸的是,真正的情況是上面所示的正則表達式要么匹配位于一行開始處的單詞 'Chapter',要么匹配一行結束處的后跟任何數字的 'Section'。如果輸入字符串為 'Chapter 22',上面的表達式將只匹配單詞 'Chapter'。如果輸入字符串為 'Section 22',則該表達式將匹配 'Section 22'。但這種結果不是我們此處的目的,因此必須有一種辦法來使正則表達式對于所要做的更易于響應,而且確實也有這種方法。

可以使用圓括號來限制選擇的范圍,也就是說明確該選擇只適用于這兩個單詞 'Chapter' 和 'Section'。不過,圓括號同樣也是難處理的,因為它們也用來創建子表達式,有些內容將在后面關于子表達式的部分介紹。通過采用上面所示的正則表達式并在適當位置添加圓括號,就可以使該正則表達式既可以匹配 'Chapter 1',也可以匹配 'Section 3'。

下面的正則表達式使用圓括號將 'Chapter' 和 'Section' 組成一組,所以該表達式才能正確工作。對 Visual Basic Scripting Edition 為:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

對 VBScript 為:

"^(Chapter|Section) [1-9][0-9]{0,1}$"

這些表達式工作正確,只是產生了一個有趣的副產品。在 'Chapter|Section' 兩邊放置圓括號建立了適當的編組,但也導致兩個待匹配單詞之一都被捕獲供今后使用。由于在上面所示的表達式中只有一組圓括號,因此只能有一個捕獲的submatch。可以使用 VBScript 的Submatches 集合或者Visual Basic Scripting Edition 中RegExp 對象的$1-$9 屬性來引用這個子匹配。

有時捕獲一個子匹配是所希望的,有時則是不希望的。在說明所示的示例中,真正想做的就是使用圓括號對單詞 'Chapter' 或 'Section' 之間的選擇編組。并不希望在后面再引用該匹配。實際上,除非真的是需要捕獲子匹配,否則請不要使用。由于不需要花時間和內存來存儲那些子匹配,這種正則表達式的效率將更高。

可以在正則表達式模式圓括號內部的前面使用 '?:'來防止存儲該匹配供今后使用。對上面所示正則表達式的下述修改提供了免除子匹配存儲的相同功能。對 Visual Basic Scripting Edition:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

對 VBScript:

"^(?:Chapter|Section) [1-9][0-9]{0,1}$"

除了 '?:' 元字符,還有兩個非捕獲元字符用于稱之為預查的匹配。一個為正向預查,用 ?= 表示, 在任何開始匹配圓括號內的正則表達式模式的位置來匹配搜索字符串。一個為負向預查,用 '?!' 表示,在任何開始不匹配該正則表達式模式的位置來匹配搜索字符串。

例如,假定有一個包含引用有 Windows 3.1、Windows 95、Windows 98 以及 Windows NT 的文檔。進一步假設需要更新該文檔,方法是查找所有對 Windows 95、Windows 98 以及 Windows NT 的引用,并將這些引用更改為 Windows 2000。可以使用下面的 Visual Basic Scripting Edition 正則表達式,這是一個正向預查,來匹配 Windows 95、Windows 98 以及 Windows NT:

/Windows(?=95 |98 |NT )/

在 VBScript 要進行同樣的匹配可以使用下述表達式:

"Windows(?=95 |98 |NT )"

找到一個匹配后,緊接匹配到的文字(而不包括預查中使用的字符)就開始對下一次匹配的搜索。例如,如果上面所示的表達式匹配到 'Windows 98',則將從 'Windows' 而不是 '98' 之后繼續查找。

感謝各位的閱讀!關于“VBS中正則表達式如何實現選擇與編組”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

新聞名稱:VBS中正則表達式如何實現選擇與編組-創新互聯
鏈接地址:http://m.kartarina.com/article38/cdcgsp.html

成都網站建設公司_創新互聯,為您提供網站設計電子商務關鍵詞優化企業網站制作云服務器網站收錄

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設
主站蜘蛛池模板: AV无码小缝喷白浆在线观看| 国产精品午夜无码av体验区| 国产成年无码久久久免费| 国产强伦姧在线观看无码| 中文无码乱人伦中文视频在线V| 无码人妻AⅤ一区二区三区 | 影音先锋无码a∨男人资源站| 夫妻免费无码V看片| 国产成人AV片无码免费| 亚洲色无码专区一区| 亚洲精品中文字幕无码蜜桃| 亚洲AV无码成人精品区日韩| 午夜福利av无码一区二区| 高清无码一区二区在线观看吞精| 久久久久久AV无码免费网站 | WWW久久无码天堂MV| 久久国产加勒比精品无码| 免费无码婬片aaa直播表情| 精品无码国产自产拍在线观看| 亚洲AV无码专区在线电影成人| 亚洲精品无码mv在线观看网站| 精品无码中文视频在线观看| 曰产无码久久久久久精品| 一本色道无码道在线观看| 亚洲精品无码你懂的网站| 粉嫩大学生无套内射无码卡视频| 精品无码国产自产拍在线观看蜜 | 精品无码国产自产拍在线观看蜜| 亚洲中文字幕久久精品无码A| 人妻丰满熟妇AV无码区乱| 国产精品无码成人午夜电影| 精品无码国产污污污免费网站国产| 国产成年无码v片在线| 亚洲日韩AV无码一区二区三区人| 久久亚洲AV成人出白浆无码国产| 无码AV中文字幕久久专区| 日日摸日日碰夜夜爽无码| 色爱无码AV综合区| 久久青青草原亚洲av无码app| 国产爆乳无码视频在线观看| 国产午夜无码视频在线观看|