正则表达式是一种文本模式匹配。它是一个三方产品。常见的shell中有grep sed awk命令支持。
通过提供特殊字符来生成一个匹配对应字符串的公式,用此来从海量数据中匹配出想要的数据。
1.特殊字符
^ 锚定开头^a 以a开头,默认锚定一个字符 ¥ 锚定结尾a$ 以a结尾,默认锚定一个字符
2.匹配符
. 匹配除回车以外的任意字符 () 字符串分组 [] 定义字符类 [^] 表示否定括号中出现字符类的字符,取反 \ 转义
3.限定符
* 某个字符之后加星号表示字符不出现或出现多次 ? 与星号相似,出现一次或者不出现 + 与星号相似,出现一次或多次。但必须出现一次 {n,m} 该字符出现最少n次,最多m次 {m} 正好出现m次
POSIX字符
posix字符一次只匹配一个范围中的一个字节
特殊字符 | 说明 |
---|---|
[:alnum:] | 匹配任意字母字符0-9 a-z A-Z |
[:alpha:] | 匹配任意字母,大写或小写 |
[:digit:] | 数字 0-9 |
[:graph:] | 非空字符( 非空格控制字符) |
[:lower:] | 小写字符a-z |
[:upper:] | 大写字符A-Z |
[:cntrl:] | 控制字符 |
[:print:] | 非空字符( 包括空格) |
[:punct:] | 标点符号 |
[:blank:] | 空格和TAB字符 |
[:xdigit:] | 16 进制数字 |
[:space:] | 所有空白字符( 新行、空格、制表符 |
注意:
注意[[ ]] 双中括号的意思: 第一个中括号是匹配符[] 匹配中括号中的任意一个字符,第二个[]是格式 如[:digit:]
标签:字符,匹配,正则表达式,空格,中括号,锚定,出现
From: https://www.cnblogs.com/jjjyyylll/p/18404289