亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

微軟的正則表達式教程(三):字符匹配

2024-05-04 11:07:35
字體:
來源:轉載
供稿:網友

普通字符

普通字符由所有那些未顯式指定為元字符的打印和非打印字符組成。這包括所有的大寫和小寫字母字符,所有數字,所有標點符號以及一些符號。

最簡單的正則表達式是一個單獨的普通字符,可以匹配所搜索字符串中的該字符本身。例如,單字符模式 'A' 可以匹配所搜索字符串中任何位置出現的字母 'A'。這里有一些單字符正則表達式模式的示例:

/a/ /7/ /M/

等價的 VBScript 單字符正則表達式為:

"a" "7" "M"

可以將多個單字符組合在一起得到一個較大的表達式。例如,下面的 JScript 正則表達式不是別的,就是通過組合單字符表達式 'a'、'7'以及 'M' 所創建出來的一個表達式。

/a7M/

等價的 VBScript 表達式為:

"a7M"

請注意這里沒有連接操作符。所需要做的就是將一個字符放在了另一個字符后面。

特殊字符

有不少元字符在試圖對其進行匹配時需要進行特殊的處理。要匹配這些特殊字符,必須首先將這些字符轉義,也就是在前面使用一個反斜杠 (/)。下表給出了這些特殊字符及其含義:

 

特殊字符 說明
$ 匹配輸入字符串的結尾位置。如果設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 '/n' 或 '/r'。要匹配 $ 字符本身,請使用 /$。
( ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 /( 和 /)。
* 匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 /*。
+ 匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 /+。
. 匹配除換行符 /n之外的任何單字符。要匹配 .,請使用 /。
[ 標記一個中括號表達式的開始。要匹配 [,請使用 /[。
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 /?。
/ 將下一個字符標記為或特殊字符、或原義字符、或后向引用、或八進制轉義符。例如, 'n' 匹配字符 'n'。'/n' 匹配換行符。序列 '//' 匹配 "/",而 '/(' 則匹配 "("。
^ 匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。要匹配 ^ 字符本身,請使用 /^。
{ 標記限定符表達式的開始。要匹配 {,請使用 /{。
| 指明兩項之間的一個選擇。要匹配 |,請使用 /|。

 

非打印字符

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

 

字符 含義
/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。

 

字符匹配

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

/a.c/

等價的 VBScript 正則表達式為:

"a.c"

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

/filename/.ext/

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

"filename/.ext"

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

括號表達式

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

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

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

/Chapter [12345]/

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

"Chapter [12345]"

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

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

/Chapter [1-5]/

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

"Chapter [1-5]"

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

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

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

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

/Chapter [^12345]/

對 VBScript 則使用:

"Chapter [^12345]"

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

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

/Chapter [^1-5]/

或者,對 VBScript 為:

"Chapter [^1-5]"

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

/[A-Za-z0-9]/

等價的 VBScript 表達式為:

"[A-Za-z0-9]"

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情亚洲视频| 亚洲天堂网在线观看| 国产精品久久久久久亚洲影视| 亚洲欧洲免费视频| 国产成人小视频在线观看| 日韩成人在线视频网站| 国产精品第1页| 亚洲高清色综合| 欧美激情视频免费观看| 日韩久久免费视频| 日韩精品视频免费专区在线播放| 亚洲人成人99网站| 九九热最新视频//这里只有精品| 自拍偷拍亚洲欧美| 国产精品美女在线| 欧美成人免费在线观看| 日韩av网站导航| 精品久久久久久久久国产字幕| 国产欧美韩国高清| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲综合日韩中文字幕v在线| 夜夜嗨av一区二区三区四区| 中文字幕精品网| 日韩av一区二区在线观看| 免费av在线一区| 欧美国产亚洲视频| 久久久免费观看| 91成人在线观看国产| 久久久久亚洲精品| 日韩欧美国产网站| 精品偷拍一区二区三区在线看| 日韩女优人人人人射在线视频| 国产成人在线一区二区| 91精品国产乱码久久久久久久久| 亚洲欧美日韩精品久久亚洲区| 日韩欧美成人免费视频| 欧美成人激情图片网| 国产suv精品一区二区| 亚洲男人天堂2019| 国产精品久久久久7777婷婷| 久久久999精品免费| 国产www精品| 色吧影院999| 一区二区在线免费视频| 亚洲性69xxxbbb| 亚洲人午夜色婷婷| 亚洲wwwav| 亚洲黄色av女优在线观看| 国产精品亚洲一区二区三区| 国产成人精品电影久久久| 日韩欧美中文字幕在线观看| 欧美成人精品一区二区三区| 欧美肥老妇视频| 欧美另类在线播放| 亚洲视频欧美视频| 精品视频中文字幕| 51色欧美片视频在线观看| 久久久久久噜噜噜久久久精品| 亚洲欧美精品在线| 欧美大尺度电影在线观看| 欧美在线视频在线播放完整版免费观看| 成人激情视频在线| 国产精品久久一| 欧美成人中文字幕在线| 国产精品一区二区久久久久| 色偷偷88888欧美精品久久久| 91精品中文在线| 精品精品国产国产自在线| 欧美精品久久久久a| 日本欧美爱爱爱| 成人亚洲欧美一区二区三区| 亚洲第一av在线| 日韩动漫免费观看电视剧高清| 国产一区二区三区在线观看视频| 亚洲国产精彩中文乱码av| 538国产精品一区二区免费视频| 欧美夫妻性生活视频| 日韩成人在线免费观看| 成人精品久久一区二区三区| 久久久久久亚洲精品中文字幕| 92国产精品久久久久首页| 高清在线视频日韩欧美| 91精品国产91久久久久久久久| 日韩成人在线视频网站| 国产精品av在线播放| 久久男人的天堂| 国产裸体写真av一区二区| 91国产精品视频在线| 国产亚洲精品美女久久久久| 国产精品69久久| 精品亚洲一区二区三区四区五区| 亚洲日本成人女熟在线观看| 久久亚洲私人国产精品va| 欧美成人手机在线| 成人亲热视频网站| 日韩精品免费看| 91国产高清在线| 欧美疯狂性受xxxxx另类| 成人午夜黄色影院| 欧美美女操人视频| 麻豆国产va免费精品高清在线| 国产深夜精品福利| 欧美壮男野外gaytube| 久久免费少妇高潮久久精品99| 久久精品国产综合| 在线观看日韩欧美| 亚洲国产日韩欧美综合久久| 4k岛国日韩精品**专区| 欧美理论电影在线观看| 在线视频国产日韩| 俺去亚洲欧洲欧美日韩| 久久777国产线看观看精品| 91av在线免费观看视频| 亚洲美女自拍视频| 亚洲天堂日韩电影| 国产精品久久在线观看| 欧美性猛交xxxx免费看久久久| 国语自产精品视频在线看抢先版图片| 欧美成人午夜激情| 欧美孕妇性xx| 中文字幕亚洲情99在线| 亚洲理论在线a中文字幕| 久久精品电影网站| 亚洲专区在线视频| 国产97在线|日韩| 日韩成人xxxx| 九九视频直播综合网| 欧美激情极品视频| 中文字幕v亚洲ⅴv天堂| 日本精品久久久久影院| 亚洲xxxx做受欧美| 国产精品视频导航| 亚洲国产精品va在看黑人| 尤物九九久久国产精品的分类| 人人做人人澡人人爽欧美| 亚洲第一中文字幕在线观看| 黑人巨大精品欧美一区免费视频| 欧美午夜激情视频| 性日韩欧美在线视频| 成人免费观看a| 国产精品www网站| 欧美极品xxxx| 91夜夜揉人人捏人人添红杏| 久久精品91久久久久久再现| 亚洲香蕉成视频在线观看| 国产精品久久久久久久久久久久| 日本高清不卡在线| 伊人精品在线观看| 高潮白浆女日韩av免费看| 日韩成人在线观看| 国产精品国产三级国产aⅴ浪潮| 日韩精品视频免费专区在线播放| 国产精品啪视频| 亚洲自拍另类欧美丝袜| 亲爱的老师9免费观看全集电视剧| 不卡伊人av在线播放| 欧美日韩午夜视频在线观看| 中文字幕九色91在线| 成人h视频在线| 久久久免费电影| 97国产成人精品视频| 91精品国产91久久久久久| 久久亚洲精品视频| 狠狠躁夜夜躁人人爽天天天天97|