我們可以使用方括弧([])來列舉所要比對的字元,例如 [aeiou] 就代表要比對母音,例如若要比對「開頭是 b、結尾是 t,且只夾一個母音」的子字串,可見下列範例:
若是連續字母或數字,就可以使用「-」來簡化方括弧中的列舉字元。例如,數字 0 到 9,可以寫成 [0123456789] 或是簡化寫成 [0-9],而 26 個小寫英文字母則可以簡化寫成 [a-z],大寫字母則是 [A-Z]。例如若要比對西元年份,可見下列範例:
事實上,regexp 指令也可以接收向量化的輸入,並產生向量化的輸出,例如:
其中 start 和 finish 都是 1x3 的異值陣列,而且 start{i} 和 finish{i} 就是 regexp(string{i}, pattern{i}) 所得到的結果。
有關方括弧的使用,我們在下面做一個列表整理與說明:
通用式 | 說明及範例 | 比對不成立之字串
|
---|
[13579] | 包含 "1" 或 "3" 或 "5" 或 "7" 或 "9" 的字串,例如:"a3b", "1xy" | "y2k"
|
[0-9] | 含數字之字串 | 不含數字之字串
|
[a-z0-9] | 含數字或小寫字母之字串 | 不含數字及小寫字母之字串
|
[a-zA-Z0-9] | 含數字或字母之字串 | 不含數字及字母之字串
|
b[aeiou]t | "bat", "bet", "bit", "bot", "but" | "bxt", "bzt"
|
[^0-9] | 不含數字之字串(若要比對 ^,請使用 \^) | 含數字之字串
|
[^aeiouAEIOU] | 不含母音之字串(若要比對 ^,請使用 \^) | 含母音之字串
|
[^\^] | 不含 "^" 之字串,例如 "xyz", "abc" | "xy^", "a^bc"
|
請注意在上表中,如果將 "^" 放在兩個方括弧中,就代表「否定」,因此 [^aeiouAEIOU] 代表「不含母音之字串」。
另外,若要避掉特殊字元的特殊意義,就要在此字元前加上 "\",例如上表中的最後一列,"^" 在方括弧裡面是代表「否定」,因此若要在方括弧裡面比對 "^",就要使用 "\^",所以「不含 "^" 之字串」的通用式就是 [^\^]。(這可不是一個表情符號喔!)
MATLAB程式設計:進階篇