精華區beta mud_sanc 關於我們 聯絡資訊
符號 符號 符號 符號 符號 行號 行號 行號 行號 行號 \ │ ^ │ $ │ * │ + 31 │ 50 │ 53 │ 56 │ 62 ? │ {n} │ {n,} │ {n,m} │ ? 68 │ 74 │ 80 │ 94 │ 104 . │ (pattern) │(?:pattern) │(?=pattern) │(?!pattern) 114 │ 117 │ 122 │ 130 │ 140 (?<=pattern)│(?<!pattern)│ x|y │ [xyz] │ [^xyz] 150 │ 157 │ 164 │ 174 │ 184 [a-z] │ [^a-z] │ \b │ \B │ \cx 190 │ 196 │ 202 │ 208 │ 211 \d │ \D │ \f │ \n │ \r 218 │ 220 │ 222 │ 224 │ 226 \s │ \S │ \t │ \v │ \w 228 │ 231 │ 233 │ 235 │ 237 \W │ \xn │ \num │ \n │ \nm 239 │ 241 │ 249 │ 257 │ 261 \nml │ \un │ │ │ 266 │ 270 │ │ │ │ │ │ │ ──────┬───────────────────────────────── 字元 描述 ──────┼───────────────────────────────── \ 將下一個字元標記為一個特殊字元、或一個原義字元、或一個向後參照 、或一個八進制轉義符。例如: n 匹配字元「n」。 \n 匹配一個換行符。序列 \\ 匹配「\」而 \( 則匹配「(」。 ──────┼───────────────────────────────── ^ 匹配輸入字串的開始位置。如果設定了RegExp物件的Multiline屬性,^ 也匹配「\n」或「\r」之後的位置。 ──────┼───────────────────────────────── $ 匹配輸入字串的結束位置。如果設定了RegExp物件的Multiline屬性,$ 也匹配「\n」或「\r」之前的位置。 ──────┼───────────────────────────────── * 匹配前面的子運算式零次或多次。例如: zo* 能匹配「z」以及「zoo」。*等價於{0,}。 ──────┼───────────────────────────────── + 匹配前面的子運算式一次或多次。例如: zo+ 能匹配「zo」以及「zoo」,但不能匹配「z」。+等價於{1,}。 ──────┼───────────────────────────────── ? 匹配前面的子運算式零次或一次。例如: do(es)? 可以匹配「do」或「does」中的「do」。?等價於{0,1}。 ──────┼───────────────────────────────── {n} n是一個非負整數。匹配確定的n次。例如: o{2} 不能匹配「Bob」中的「o」,但是能匹配「food」中的兩個o。 ──────┼───────────────────────────────── {n,} n是一個非負整數。至少匹配n次。例如: o{2,} 不能匹配「Bob」中的「o」,但能匹配「foooood」中的所有o。 o{1,} 等價於「o+」。 o{0,} 則等價於「o*」。 ──────┼───────────────────────────────── {n,m} m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。例如: o{1,3} 將匹配「fooooood」中的前三個o。 o{0,1} 等價於「o?」。請注意在逗號和兩個數之間不能有空格。 ──────┼───────────────────────────────── ? 當該字元緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})後面 時,匹配模式是非貪婪的。非貪婪模式儘可能少的匹配所搜尋的字串, 而預設的貪婪模式則儘可能多的匹配所搜尋的字串。例如: 對於字串「oooo」 o+?」將匹配單個「o」,而 o+」將匹配所有「o」。 ──────┼───────────────────────────────── . 匹配除「\n」之外的任何單個字元。要匹配包括「\n」在內的任何字元 ,請使用像「(.|\n)」的模式。 ──────┼───────────────────────────────── (pattern) 匹配pattern並獲取這一匹配的子字串。該子字串用於向後參照。所獲取 的匹配可以從產生的Matches集合得到,在VBScript中使用SubMatches集 合,在JScript中則使用$0…$9屬性。要匹配圓括號字元,請使用「\(」 或「\)」。 ──────┼───────────────────────────────── (?:pattern) 匹配pattern但不獲取匹配的子字串,也就是說這是一個非獲取匹配,不 儲存匹配的子字串用於向後參照。這在使用或字元「(|)」來組合一個模 式的各個部分是很有用。例如: industr(?:y|ies) 就是一個比「industry|industries」更簡略的運算式。 ──────┼───────────────────────────────── (?=pattern) 正向肯定預查,在任何匹配pattern的字串開始處匹配尋找字串。這是一 個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如: Windows(?=95|98|NT|2000) 能匹配「Windows2000」中的「Windows」,但不能匹配「Windows3.1」 中的「Windows」。預查不消耗字元,也就是說,在一個匹配發生後,在 最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字 元之後開始。 ──────┼───────────────────────────────── (?!pattern) 正向否定預查,在任何不匹配pattern的字串開始處匹配尋找字串。這是 一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如: Windows(?!95|98|NT|2000) 能匹配「Windows3.1」中的「Windows」,但不能匹配「Windows2000」 中的「Windows」。預查不消耗字元,也就是說,在一個匹配發生後,在 最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字 元之後開始。 ──────┼───────────────────────────────── (?<=pattern)反向肯定預查,與正向肯定預查類似,只是方向相反。例如: (?<=95|98|NT|2000)Windows 能匹配「2000Windows」中的「Windows」,但不能匹配「3.1Windows」 中的「Windows」。 ──────┼───────────────────────────────── (?<!pattern)反向否定預查,與正向否定預查類似,只是方向相反。例如: (?<!95|98|NT|2000)Windows 能匹配「3.1Windows」中的「Windows」,但不能匹配「2000Windows」 中的「Windows」。 ──────┼───────────────────────────────── x|y 匹配x或y。例如: z|food 能匹配「z」或「food」。 (z|f)ood 則匹配「zood」或「food」。 ──────┼───────────────────────────────── [xyz] 字符集合(character class)。匹配所包含的任意一個字元。例如: [abc] 可以匹配「plain」中的「a」。特殊字元僅有反斜線 \ 保持特殊含義 ,用於轉義字元。其它特殊字元如星號、加號、各種括弧等均作為普通 字元。脫字元 ^ 如果出現在首位則表示負值字符集合;如果出現在字 串中間就僅作為普通字元。連字元 - 如果出現在字串中間表示字元範 圍描述;如果如果出現在首位則僅作為普通字元。 ──────┼───────────────────────────────── [^xyz] 排除型(negate)字符集合。匹配未列出的任意字元。例如: [^abc] 可以匹配「plain」中的「plin」。 ──────┼───────────────────────────────── [a-z] 字元範圍。匹配指定範圍內的任意字元。例如: [a-z] 可以匹配「a」到「z」範圍內的任意小寫字母字元。 ──────┼───────────────────────────────── [^a-z] 排除型的字元範圍。匹配任何不在指定範圍內的任意字元。例如: [^a-z] 可以匹配任何不在「a」到「z」範圍內的任意字元。 ──────┼───────────────────────────────── \b 匹配一個單詞邊界,也就是指單詞和空格間的位置。例如: er\b 可以匹配「never」中的「er」,但不能匹配「verb」中的「er」。 ──────┼───────────────────────────────── \B 匹配非單詞邊界。「er\B」能匹配「verb」中的「er」,但不能匹配「 never」中的「er」。 ──────┼───────────────────────────────── \cx 匹配由x指明的控制字元。例如: \cM 匹配一個Control-M或Enter符。x的值必須為A-Z或a-z之一。否則,將c 視為一個原義的「c」字元。 ──────┼───────────────────────────────── \d 匹配一個數位字元。等價於[0-9]。 ──────┼───────────────────────────────── \D 匹配一個非數位字元。等價於[^0-9]。 ──────┼───────────────────────────────── \f 匹配一個換頁符。等價於\x0c和\cL。 ──────┼───────────────────────────────── \n 匹配一個換行符。等價於\x0a和\cJ。 ──────┼───────────────────────────────── \r 匹配一個Enter符。等價於\x0d和\cM。 ──────┼───────────────────────────────── \s 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [\f\n\r\t\v]。 ──────┼───────────────────────────────── \S 匹配任何非空白字元。等價於[^\f\n\r\t\v]。 ──────┼───────────────────────────────── \t 匹配一個製表符。等價於\x09和\cI。 ──────┼───────────────────────────────── \v 匹配一個垂直製表符。等價於\x0b和\cK。 ──────┼───────────────────────────────── \w 匹配包括底線的任何單詞字元。等價於「[A-Za-z0-9_]」。 ──────┼───────────────────────────────── \W 匹配任何非單詞字元。等價於「[^A-Za-z0-9_]」。 ──────┼───────────────────────────────── \xn 匹配n,其中n為十六進制轉義值。十六進制轉義值必須為確定的兩個數 位長。例如: \x41 匹配「A」。「\x041」則等價於「\x04&1」。正則運算式中可以使用 ASCII編碼。 ──────┼───────────────────────────────── \num 向後參照(back-reference)一個子字串(substring),該子字串與 正規表示式的第num個用括弧圍起來的子運算式(subexpression)匹配 。其中num是從1開始的正整數,其上限可能是99。例如: (.)\1 匹配兩個連續的相同字元。 ──────┼───────────────────────────────── \n 標識一個八進制轉義值或一個向後參照。如果\n之前至少n個獲取的子 運算式,則n為向後參照。否則,如果n為八進制數位(0-7),則n為一 個八進制轉義值。 ──────┼───────────────────────────────── \nm 標識一個八進制轉義值或一個向後參照。如果\nm之前至少有nm個獲得 子運算式,則nm為向後參照。如果\nm之前至少有n個獲取,則n為一個 後跟文字m的向後參照。如果前面的條件都不滿足,若n和m均為八進制 數位(0-7),則\nm將匹配八進制轉義值nm。 ──────┼───────────────────────────────── \nml 如果n為八進制數位(0-3),且m和l均為八進制數位(0-7),則匹配 八進制轉義值nml。 ──────┼───────────────────────────────── \un 匹配n,其中n是一個用四個十六進制數位表示的Unicode字元。例如: \u00A9 匹配版權符號(U+00A9)。 ──────┴───────────────────────────────── 修改於: https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.196.45
kano4002 :這一篇文章值 1 Ptt幣 06/16 12:39
AresMars :laugh 06/16 14:00
hmml :不小心就拿到第8000篇 06/19 23:17