Regex 正規表示法 - 基本語法
一個正規表示法通常被稱為是一個模式 (pattern),用來描述或匹配符合某個樣式規則的字串。
匹配字串最簡單的方式就是把所有的可能性都條列出來,例如你要找出 Handel、Händel 和 Haendel 這三個字串,你的匹配條件 (pattern) 可以這樣寫 Handel|Händel|Haendel
;但透過 Regex 的語法,你可以用更簡潔有效率的方法描述你的 pattern,像是用 H(a|ä|ae)ndel
這個模式來描述,是不是簡單又強大多了!
要匹配同一個字串的 pattern 不止一種,很多種表示法都可以用來匹配到同一個字串。
pattern 一般由字符常量 (literal character constants) 和符號運算子 (operator symbols) 組成。
一個 pattern 中,常見的有下面這些組成元素:
- 字元:就是單純照字面上的意義。例如 dog 可以用來匹配 dog 這字串;hello 101 則用來匹配 hello 101 這字串。
- 或 (or):
|
管線符號,用來將所有可能的選擇條件分隔開。例如 gray|grey 可以用來匹配 gray 或是 grey 字串。 - 群組 (grouping):
()
小括號,用來表示作用範圍或優先順序。例如 gray|grey 和 gr(a|e)y 都同樣可以用來匹配 gray 或是 grey 字串。 - 量詞 (quantifier):quantifier 用來接在字符串或群組後面,表示某個條件應該出現「幾次」。常見的量詞有:
?
:表示連續出現 0 次或 1 次。例如 colou?r 可以用來匹配 color 或 colour。*
:表示連續出現 0 次或多次。例如 ab*c 可以用來匹配 ac, abc, abbc, abbbc 或 abbbbbbc。+
:表示連續出現 1 次或多次。例如 ab+c 可以用來匹配 abc, abbc, abbbc, abbbbbbc,但 ac 不符合。{min,max}
:表示至少連續出現 min 次,但最多連續出現 max 次。