Try   HackMD

Regex 的介紹與應用

正規表達式 (Regular Expression, Regex) 使用單個字串來描述、符合一系列符合某個句法規則的字串。

基本語法

選擇

豎線 | 代表選擇(即或集),具有最低優先級。例如 gray|grey 可以符合grey或gray。

數量限定

  • 加號 + 代表前面的字元必須至少出現一次。例如,goo+gle 可以符合 googlegoooglegoooogle
  • 問號 ? 代表前面的字元最多只可以出現一次。例如,colou?r 可以符合 color 或者 colour
  • 星號 * 代表前面的字元可以不出現,也可以出現一次或者多次。例如,0*42 可以符合 42042004200042 等。

符合

圓括號 () 可以用來定義運算子的範圍和優先度。例如,gr(a|e)y 等價於 gray|grey(grand)?father 符合 fathergrandfather

表達式列表

表達式 描述
\ 將下一個字元標記為特殊字元
^ 字串開始位置
$ 字串結束位置
+,?,* 詳見基本語法
{n} 指前面的字元出現確定n次
{n,} 指前面的字元出現至少n次
{n,m} 指前面的字元出現至少n次、至多n次
. 符合 \n\r 之外的任意字元
x|y 若未使用 (),範圍為全表達式
[abc] 字元集合,符合所包含的任意一個字元
[^abc] 排除型字元集合,符合未列出的任意一個字元
[a-z] 字元範圍,符合指定範圍內的任意字元
[^a-z] 排除型字元範圍,符合指定範圍內之外的任意字元

Java 中的 Regex


tags: Algorithm