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

首頁 > 學院 > 開發設計 > 正文

正則表達式簡介(9-10)

2019-11-18 22:23:43
字體:
來源:轉載
供稿:網友
9.非打印字符

有不少很有用的非打印字符,偶爾必須使用。下表顯示了用來表示這些非打印字符的轉義序列:

字符                       含義

/cx    匹配由x指明的控制字符。例如, /cM 匹配一個 Control-M 或回車符。
        x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字
        符。

/f     匹配一個換頁符。等價于 /x0c 和 /cL。

/n     匹配一個換行符。等價于 /x0a 和 /cJ。

/r     匹配一個回車符。等價于 /x0d 和 /cM。

/s    匹配任何空白字符,包括空格、制表符、換頁符等等。等價于
       [/f/n/r/t/v]。

/S    匹配任何非空白字符。等價于 [^ /f/n/r/t/v]。

/t    匹配一個制表符。等價于 /x09 和 /cI。

/v    匹配一個垂直制表符。等價于 /x0b 和 /cK。

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

10.字符匹配

句點 (.) 匹配一個字符串中任何單個的打印或非打印字符,除了換行符 (/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諸如此類的章節標題,你可能需要找到這些章節標題。


括號表達式

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

1.  ']' 字符如果不是第一項,則將結束一個列表。要在列表中匹配 ']' 字符,請將其放在第一項,緊跟在開始的 '['
后面。

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 排序中起始值一定
要在結束值之前。

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

1.  使用反斜杠將其轉義: [/-]

2.  將連字符放在括號列表的開始和結束位置。下面的表達式能匹配所有的小寫字母和連字符:[-a-z],[a-z-]

3.  創建一個范圍,其中開始字符的值小于連字符,而結束字符的值等于或大于連字符。下面兩個正則表達式都滿足這一
要求: [!--],[!-~]

同樣,通過在列表開始處放置一個插入符(^),就可以查找所有不在列表或范圍中的字符。如果該插入符出現在列表的其他
位置,則匹配其本身,沒有任何特殊含義。下面的 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]"




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屯昌县| 盱眙县| 聊城市| 广平县| 政和县| 夏河县| 濮阳县| 黑龙江省| 巴青县| 沭阳县| 东山县| 高邮市| 晋宁县| 宜兰县| 苍南县| 华阴市| 揭东县| 成武县| 滨海县| 锦屏县| 醴陵市| 安达市| 会同县| 建平县| 辉县市| 亳州市| 怀集县| 壤塘县| 行唐县| 雷州市| 吉安市| 登封市| 房产| 康马县| 濉溪县| 甘孜| 稷山县| 绍兴县| 嘉荫县| 响水县| 新营市|