基础语法
字面字符和元字符
字面字符
字面字符是可以直接匹配自身的字符,包括:
- 字母和数字:
a-z
,A-Z
,0-9
示例:cat
精确匹配字符串 "cat" - 普通符号:空格、
!
、@
、#
等(除元字符外的符号) - 非ASCII字符:非ASCII字符全部是字面字符
元字符
.
:匹配除换行符外的任意单个字符。^
:匹配字符串的开始位置。$
:匹配字符串的结束位置。*
:匹配前面的子表达式零次或多次。+
:匹配前面的子表达式一次或多次。?
:匹配前面的子表达式零次或一次。{
、}
|
[
、]
(
、)
\
字符集与字符类
字符类和字符集都表示字符集合,字符类是预定义字符集,比如\d
表示数字字符集合;除了字符类(预定义的字符集),还可以自定义字符集。自定义字符集使用[]
进行定义,比如定义一个由0和1组成的字符集[01]。 先从字符集的开始
使用 []
将目标字符集合括起来,即可定义一个字符集,示例:
定义一个字符集表示数字的集合[0123456789]
,定义英语中元音字母集合[aeiou]
,定义小写英文字母集合[abcdefghijklmnopqrstuvwxyz]
;当字符集和包含很多字符时,这种穷举式写法显得繁琐,可以结合-
范围表示法和^
排除表示法进行定义,[0123456789]
等价于[0-9]
,[abcdefghijklmnopqrstuvwxyz]
等价于[a-z]
[aeiou] # 匹配任意元音字母
[A-Za-z] # 匹配所有大小写字母
[0-9A-F] # 匹配十六进制数字
[^0-9] # 匹配非数字字符(排除型字符集)
字符类是对常用字符集的简写
字符类 | 等价字符集 | 描述 |
---|---|---|
\d |
[0-9] |
数字字符 |
\w |
[A-Za-z0-9_] |
单词字符 |
\s |
[ \t\r\n\f] |
空白字符 |
\D |
[^0-9] |
非数字 |
\W |
[^A-Za-z0-9_] |
非单词字符 |
\S |
[^ \t\r\n\f] |
非空白字符 |
\b |
单词边界(字母与非字母之间) | |
\B |
非单词边界 |