正则表达式

一 特殊符号

        一共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:]→[ ‘ ’,‘ ’]

   [:space:]→[‘ ’, ‘f’,‘ ’,‘ ’, ‘v’, ‘ ’]

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'

原文地址:https://www.cnblogs.com/talenth/p/5820035.html