首页 > 代码库 > 正则表达式
正则表达式
一 特殊符号
一共12个, 这些是输出包含的字符序列, 所以像[[:alnum:]], [^[:alnum:]]这种两个中括号的表达式就比较好理解了; 尽量不要用[a-z]之类, 因为不同的字符编码方式, 对这种表达式的解释不同
1 字母数字
[:alnum:]→[0-9,a-z,A-Z]
[:alpha:]→[a-z,A-Z]
[:upper:]→[A-Z]
[:lower:]→[a-z]
[:digit:]→[ 0-9]
[:xdigit:]→[ 0-9,a-f,A-F]
2 空白字符
[:blank:]→[ ‘ ’,‘\t’]
[:space:]→[‘ ’, ‘\f’,‘\n’,‘\t’, ‘\v’, ‘\r’]
3 其他字符
[:cntrl:]→[控制字符,即ASCII中[0,31]范围内,还有127的字符]
[:print:]→[可以打印的字符(字母, 数字, 标点符号, 空格),即ASCII中[32,126]范围内的字符]
[:graph:]→[除空格外的可打印字符(字母, 数字, 标点符号),即ASCII中[33,126]范围内的字符]
[:punct:]→[标点符号,即graph中除了字母跟数字]
二 基础用法
1 ^word→行首匹配
2 word$→行尾匹配
3 .→代表一定有一个任意字符的字符
4 \→转义字符前缀
5 *→重复零个到无穷多个前字符
6 [list]→list序列里面的任意字符
7 [n1-n2]→根据编码方式, n1到n2之间的任意一个字符
8 [^list]→不在list序列中的任意一个字符
9 \{n,m\}→连续n到m个前字符
10\{n\}→连续n个前字符
11\{n,\}→连续n个以上前字符
三 扩展用法
1 +→重复一个或一个以上的前字符
2 ?→零个或一个前字符
3 |→or eg: ‘glad|good‘
4 ()→找出"组"字符串 eg: ‘g(la|oo)d‘
5 ()+→重复一个或一个以上的组串 eg: ‘A(xyz)C‘
正则表达式