国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

VBS教程:正則表達式簡介 -字符匹配

2020-07-26 12:14:24
字體:
來源:轉載
供稿:網友

字符匹配

句點 (.) 匹配一個字符串中任何單個的打印或非打印字符,除了換行符 (/n) 之外。下面的 Visual Basic Scripting Edition 正則表達式可以匹配 'aac'、'abc'、'acc'、'adc'如此等等,同樣也可以匹配 'a1c'、'a2c'、a-c'以及 a#c':

/a.c/

等價的 VBScript 正則表達式為:

"a.c"

如果試圖匹配一個包含文件名的字符串,其中句點 (.) 是輸入字符串的一部分,則可以在正則表達式中的句點前面加上一個反斜杠 (/) 字符來實現這一要求。舉例來說,下面的 Visual Basic Scripting Edition 正則表達式就能匹配 'filename.ext':

/filename/.ext/

對 VBScript 而言,等價的表達式如下所示:

"filename/.ext"

這些表達式仍然是相當有限的。它們只允許匹配任何單字符。很多情況下,對從列表中匹配特殊字符十分有用。例如,如果輸入文字中包含用數字表示為Chapter 1, Chapter 2諸如此類的章節標題,你可能需要找到這些章節標題。

括號表達式

可以在一個方括號 ([ 和 ]) 中放入一個或多個單字符,來創建一個待匹配的列表。如果字符被放入括號中括起來,則該列表稱為括號表達式。括號內和其他任何地方一樣,普通字符代表其本身,也就是說,它們匹配輸入文字中出現的一處自己。大多數特殊字符在位于括號表達式中時都將失去其含義。這里有一些例外:

  • ']' 字符如果不是第一項,則將結束一個列表。要在列表中匹配 ']' 字符,請將其放在第一項,緊跟在開始的 '[' 后面。
  • '/' 仍然作為轉義符。要匹配 '/' 字符,請使用 '//'。

括號表達式中所包含的字符只匹配該括號表達式在正則表達式中所處位置的一個單字符。下面的 Visual Basic Scripting Edition 正則表達式可以匹配 'Chapter 1'、'Chapter 2'、'Chapter 3'、'Chapter 4' 以及 'Chapter 5':

/Chapter [12345]/

在 VBScript 中要匹配同樣的章節標題,請使用下面的表達式:

"Chapter [12345]"

請注意單詞 'Chapter' 及后面的空格與括號內的字符的位置關系是固定的。因此,括號表達式只用來指定滿足緊跟在單詞 'Chapter' 和一個空格之后的單字符位置的字符集合。這里是第九個字符位置。

如果希望使用范圍而不是字符本身來表示待匹配的字符,則可以使用連字符將該范圍的開始和結束字符分開。每個字符的字符值將決定其在一個范圍內的相對順序。下面的 Visual Basic Scripting Edition 正則表達式包含了一個等價于上面所示的括號列表的范圍表達式。

/Chapter [1-5]/

VBScipt 中相同功能的表達式如下所示:

"Chapter [1-5]"

如果以這種方式指定范圍,則開始和結束值都包括在該范圍內。有一點特別需要注意的是,在 Unicode 排序中起始值一定要在結束值之前。

如果想在括號表達式中包括連字符,則必須使用下述方法之一:

  • 使用反斜杠將其轉義:
    [/-]
  • 將連字符放在括號列表的開始和結束位置。下面的表達式能匹配所有的小寫字母和連字符:
    [-a-z][a-z-]
  • 創建一個范圍,其中開始字符的值小于連字符,而結束字符的值等于或大于連字符。下面兩個正則表達式都滿足這一要求:
    [!--][!-~]

同樣,通過在列表開始處放置一個插入符(^),就可以查找所有不在列表或范圍中的字符。如果該插入符出現在列表的其他位置,則匹配其本身,沒有任何特殊含義。下面的 Visual Basic Scripting Edition 正則表達式匹配章節號大于 5 的章節標題:

/Chapter [^12345]/

對 VBScript 則使用:

"Chapter [^12345]"

在上面所示的示例中,表達式將匹配第九個位置處除1, 2, 3, 4, or 5 之外的任何數字字符。因此, 'Chapter 7' 為一個匹配,同樣 'Chapter 9' 也是如此。

上面的表達式可以使用連字符 (-) 表示。對 Visual Basic Scripting Edition 為:

/Chapter [^1-5]/

或者,對 VBScript 為:

"Chapter [^1-5]"

括號表達式的典型用法是指定對任何大寫或小寫字母字符或任何數字的匹配。下面的 Visual Basic Scripting Edition 表達式給出了這一匹配:

/[A-Za-z0-9]/

等價的 VBScript 表達式為:

"[A-Za-z0-9]"
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扬中市| 遂昌县| 大余县| 黄大仙区| 吉林省| 衡东县| 廉江市| 平山县| 中江县| 舞钢市| 郎溪县| 厦门市| 南江县| 白沙| 图木舒克市| 西林县| 含山县| 克什克腾旗| 色达县| 丹棱县| 安顺市| 泰州市| 稻城县| 桃园市| 滕州市| 曲靖市| 当雄县| 格尔木市| 翁源县| 岳西县| 延长县| 平泉县| 牙克石市| 枞阳县| 哈密市| 宜兴市| 西平县| 台南市| 北辰区| 威海市| 许昌县|