Please enable JavaScript.
Coggle requires JavaScript to display documents.
正則表達式 (字元組成 (Special constructs ((?-i -d -m -s -u -x) : 特別設定的flag…
正則表達式
字元組成
簡單組合
XY : 單純排列在一起
X|Y : X or Y
而以字元而言a|b就等於[ab],所以對單一字元效果不大,主要是用於字元範圍的[]|[]或者群組()|()比較有意義。
(X) : 群組,將多個字元包裝成一個群組
例如(abc)+是指"abc"出現一次以上,abc+是指ab和一次以上的c。
(.)(.)(.).?\3\2\1",可以找出3個字的回文。如"abccba"、"xcdfdcx"。
Group的另一個對應符號是
\m : m是數字
重複次數
Greedy quantifiers
X?: X出現0或一次
X+: X出現一次以上
X*: X出現0或一次以上
X{n,}: X出現至少n次
X{n,m}: X出現n到m次
X{n}: X出現n次
Reluctant quantifiers
Possessive quantifiers
Special constructs
(?:X) :X會取得,但不會被保留,當之後有用\m的時候,這個Group會不算在內,這樣的處理效能會比較好。
(?-i -d -m -s -u -x) : 特別設定的flag
不分大小寫。(?i)
當文件是UNIX的換行格式時,要處理換行就可以打開這個模式。(?d)
多行模式下,^和$是以指每一行,不然是用整個字串的頭尾當^和$。(?m)
預設java的.不含\n \r,這個模式可以讓.等於所有字元包含\r \n。(?s)
可以在pattern裡面使用註解,會忽略pattern裡面的whitespace,以及"#"一直到結尾。(?x)
X(?=X) : lookahead在要取得的字串右邊,
X(?!X) : lookahead在要取得的字串右邊,和右邊相反
(?<=X)X : lookbehind在要取得的字串左邊
(?<!X)X : lookbehind在要取得的字串左邊
字元
特殊字元
\d : 數字0-9。
\D : 非數字,數字的除外集合。
\w : 文字 a-z A-Z _ 0-9,所有的英文大小寫,數字和底線。
\W : 非文字,文字的除外集合。
\ : 把之後的特殊字元當作是一般是字元,例如"\"等於一個"\","["等於"["。
^ : 行首
$ : 行尾
一般字元
[abc] : 這個字元可能是a或b或c
[a-zA-Z] : 這個字元是a到z或是A到Z。
[a-d[m-p]] : 這個字元是a到d或是m到p (聯集)。