歸類:界定符、原子、量詞、邊界控制、模式單元
**界定符:**
表示一個正則表達式的開始和結束,符號斜杠或#號。
如:`/[0-9]/,$pattern='/[0-9]/';`
或者`#[0-9]#`
**原子:**
Unicode編碼中最小的單元符號,一個字符。
可見原子 - Unicode編碼表中可見的字符
不可見原子 - 比如回車,空格,TAB制表符等。
**元字符:**
原子的篩選方式
~~~
- | 匹配兩個或者多個分支選擇
- [] 匹配方括號中的任意一個原子
- [^] 匹配除方括號中的原子之外的任意字符
~~~
原子的集合
~~~
- . 匹配除換行符之外的任意字符
- \d 匹配任意一個十進制數字,即[0-9]
- \D 匹配任意一個非十進制數字,即[^0-9]
- \s 匹配一個不可見原子,即[\f\n\r\t\v]
- \S 匹配一個可見原子,即[^\f\n\r\t\v]
- \w 匹配任意一個數字、字母或下劃線,即[0-9a-zA-Z_]
- \W 匹配任意一個非數字、字母或下劃線,即[^0-9a-zA-Z_]
~~~
**量詞:**
~~~
{n} 表示其前面的原子恰好出現n次
{n,} 表示其前面的原子最少出現n次
{n,m} 表示其前面的原子最少出現n次,最多出現m次
* 匹配0次、1次或者多次其之前的原子,即{0,}
+ 匹配1次或者多次其之前的原子,即{1,}
? 匹配0次或者1次其之前的原子,即{0,1}
~~~
**邊界控制與模式單元:**
~~~
^ 匹配字符串的開始的位置
$ 匹配字符串結尾的位置
() 匹配其中的整體為一個原子0
~~~