正则表达式
是一种文本模式匹配,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符")。是一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,将匹配的子串替换或者从某个字符串中取出某个条件的子串。
特殊字符
定位符 | 说明 |
---|---|
^ | 锚定开头^a 以a开头 默认锚定一个字符 |
$ | 锚定结尾 a$ 以a结尾 默认锚定一个字符 |
两个一起用是精确匹配,只用一个是模糊匹配
匹配符 | 说明 |
---|---|
. | 匹配除回车之外的任意字符 |
() | 字符串分组 |
[] | 定义字符串,匹配括号中的一个字符 |
[^] | 表示否定括号中出现字符类中的字符,取反 |
\ | 转义字符 |
限定符 | 说明 |
---|---|
* | 某个字符之后加星号表示该字符不出现或出现多次 |
? | 与星号相似,但略有变化,表示该字符可以不出现或者出现一次 |
+ | 与星号相似,表示其前面字符出现一次或多次,但必须出现一次 |
{n,m} | 某个字符之后出现,表示该字符最少出现n次,最多出现m次 |
{m} | 正好出现m次 |
POSIX字符
特殊字符 | 说明 |
---|---|
[:alnum:] | 匹配任意字母数字字符 0-9 a-z A-Z |
[:alpha:] | 匹配任意字母 a-z A-Z |
[:digit:] | 数字0-9 |
[:graph:] | 非空字符(非空格控制字符) |
[:upper:] | 大写字母 A-Z |
[:lower:] | 小写字母 a-z |
[:cntrl:] | 控制字符 |
[:print:] | 非空字符(包括空格) |
[:punct:] | 标点符号 |
[:blank:] | 空格和TAB字符 |
[:xdigit:] | 16进制数字 |
[:space:] | 所有空白字符(新行、空格、制表符) |