溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VBS正則表達式定位符的描述

發(fā)布時間:2021-09-02 06:54:04 來源:億速云 閱讀:133 作者:chen 欄目:開發(fā)技術

本篇內容主要講解“VBS正則表達式定位符的描述”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“VBS正則表達式定位符的描述”吧!

定位符

到現(xiàn)在為止,所看到的示例都只考慮查找任何地方出現(xiàn)的章節(jié)標題。出現(xiàn)的任何一個字符串 'Chapter' 后跟一個空格和一個數(shù)字可能是一個真正的章節(jié)標題,也可能是對其他章節(jié)的交叉引用。由于真正的章節(jié)標題總是出現(xiàn)在一行的開始,因此需要設計一個方法只查找標題而不查找交叉引用。

定位符提供了這個功能。定位符可以將一個正則表達式固定在一行的開始或結束。也可以創(chuàng)建只在單詞內或只在單詞的開始或結尾處出現(xiàn)的正則表達式。下表包含了正則表達式及其含義的列表:

字符描述
^匹配輸入字符串的開始位置。如果設置了 RegExp 對象的 Multiline 屬性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$匹配輸入字符串的結束位置。如果設置了RegExp 對象的 Multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置。
\b匹配一個單詞邊界,也就是指單詞和空格間的位置。
\B匹配非單詞邊界。

不能對定位符使用限定符。因為在一個換行符或者單詞邊界的前面或后面不會有連續(xù)多個位置,因此諸如 '^*' 的表達式是不允許的。

要匹配一行文字開始位置的文字,請在正則表達式的開始處使用 '^' 字符。不要把 '^' 的這個語法與其在括號表達式中的語法弄混。它們的語法根本不同。

要匹配一行文字結束位置的文字,請在正則表達式的結束處使用 '$' 字符。

要在查找章節(jié)標題時使用定位符,下面的 Visual Basic Scripting Edition 正則表達式將匹配位于一行的開始處最多有兩個數(shù)字的章節(jié)標題:

/^Chapter [1-9][0-9]{0,1}/

VBScript 中相同功能的正則表達式如下:

"^Chapter [1-9][0-9]{0,1}"

一個真正的章節(jié)標題不僅出現(xiàn)在一行的開始,而且這一行中也僅有這一個內容,因此,它必然也位于一行的結束。下面的表達式確保所指定的匹配只匹配章節(jié)而不會匹配交叉引用。它是通過創(chuàng)建一個只匹配一行文字的開始和結束位置的正則表達式來實現(xiàn)的。

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

對 VBScript 則使用:

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

匹配單詞邊界有少許不同,但卻給正則表達式增加了一個非常重要的功能。單詞邊界就是單詞和空格之間的位置。非單詞邊界就是其他任何位置。下面的 Visual Basic Scripting Edition 表達式將匹配單詞 'Chapter' 的前三個字符,因為它們出現(xiàn)在單詞邊界后:

/\bCha/

對 VBScript 為:

"\bCha"

這里 '\b' 操作符的位置很關鍵。如果它位于要匹配的字符串的開始,則將查找位于單詞開頭處的匹配;如果它位于改字符串的末尾,則查找位于單詞結束處的匹配。例如,下面的表達式將匹配單詞 'Chapter' 中的 'ter',因為它出現(xiàn)在單詞邊界之前:

/ter\b/

以及

"ter\b"

下面的表達式將匹配 'apt',因為它位于 'Chapter' 中間,但不會匹配 'aptitude' 中的'apt':

/\Bapt/

以及

"\Bapt"

這是因為在單詞 'Chapter' 中 'apt' 出現(xiàn)在非單詞邊界位置,而在單詞 'aptitude' 中位于單詞邊界位置。非單詞邊界操作符的位置不重要,因為匹配與一個單詞的開頭或結尾無關。

到此,相信大家對“VBS正則表達式定位符的描述”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vbs
AI