正则表达式 Regular Expression
正则表达式算符
\
: 反斜杠用来转义在正则表达式中有特殊含义的字符为一般字符.^
: 上三角用来标定一个字符串的开始. 需要注意的是^
并不用来表示一行的开始 (即\n
之后).$
: 美元符号用来标定一个字符串的结束. 需要注意的是^
并不用来表示一行的结束 (即\n
之前)..
: 句点用来匹配任意单一字符.[...]
: 方括号用来匹配包含于方括号内的字符, 仅匹配单一字符. 其中[a-z]
代表匹配从 a 到 z 的所有字符, 类似的还有[A-Z]
,[0-9]
等等.[^...]
: 方括号用来匹配不包含于方括号内的任意字符, 仅匹配单一字符.|
: 或, 即在左右两边的匹配中匹配任何一个即可.(...)
: 用于分组匹配, 即括号中的字符是一个整体.*
: 匹配前方规则零个到多个.+
: 匹配前方规则一个到多个.?
: 匹配前方规则零个到一个.{n}
: 匹配前方规则正好 n 个.{n,m}
: 匹配前方规则最小 n 个, 最多 m 个, 其中 m 可以省略, 指无数多个.
POSIX 字符类 character classes
character classes 相当于一个特殊的字符, 该字符会匹配一类的一般字符. 其使用和一般字符类似.
[:alnum:]
: alphanumeric, 所有英文字母和数字, 相当于a-zA-Z0-9
.[:alpha:]
: alphabetic, 所有英文字母, 相当于a-zA-Z
.[:blank:]
: 空格和制表符.[:cntrl:]
: 控制符号. 包括: LF(Newline, 换行), CR(Carriage return, 回车), FF(Formfeed, 换页), BS(Backspace, 退格), BEL(alert, 响铃) 等许多符号.[:digit:]
: 数字, 相当于0-9
.[:graph:]
: 所有可以打印或者可以看到的字符, 空格是可以打印的字符, 'a' 是可以打印也可以看到的字符.[:lower:]
: 小写字母, 相当于a-z
.[:print:]
: 所有可以打印地符号, 不包括控制符号.[:punct:]
: punctuation, 标点, 不是字母, 数字, 控制字符和空格的其他符号, 如各种括号和标点等.[:space:]
: 空间符号, 包括空格(space), 制表符号(TAB), 换页(formfeed) 等.[:upper:]
: 大写字母, 相当于A-Z
.[:xdigit:]
: 十六进制的数字.