归类:界定符、原子、量词、边界控制、模式单元
**界定符:**
表示一个正则表达式的开始和结束,符号斜杠或#号。
如:`/[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
~~~