Shell脚本-正则表达式
一、Regular Expressions
- PEGXP:Regular Expressions ,由一类特殊字符以及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或统配的功能
- 程序支持:grep、sed、awk、vim、less、nginx、varinsh等
- 分两类:
- 基本正则表达式:BRE
- 扩展正则表达式:ERE
- grep -E,egrep
- 正则表达式引擎:
- 采用不同算法,检查处理正则表达式的软件模块;
- PCRE
- 元字符分类:字符匹配、匹配次数、位置锚定、分组;
二、字符匹配
-
字符匹配
- . 匹配任意单个字符
- [] 匹配指定范围内的任意字符,实例:[wang];表示其中的一个字母 0-9 [a-z A-Z]
- [^] 匹配指定范围外的任意单个字符
- [:alnum:] 字母和数字
- [:alpha:] 代表任何英文大小写字符,即A-Z,a-z
- [:lower:] 小写字母
- [:upper:] 大写字母
- [::blank] 空白字符(空格和制表符)
- [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
- [:cntrl:] 不可打印的控制字符(退格、删除、警铃)
- [:digit:] 十进制数字[:xdigit:] 十六进制数字
- [:graph:] 可打印的非空白字符
- [:print:] 可打印字符
- [:punct:] 标点符号
-
匹配次数:用在要指定次数的符号后面,用于指定前面的字符要出现的次数
-
- 匹配前面的字符任意次,包含0次
- 贪婪模式:尽可能长的匹配
- 匹配前面的字符任意次,包含0次
- .* 任意长度的任意字符
- ? 匹配其前面的字符0或1次(可有可无)
-
- 匹配其前面的字符至少一次
- {n} 匹配前面的字符n次
- {m,n} 匹配前面的字符至少m次,至多n次
- {,n} 匹配前面的字符至多n次
- {n,} 匹配前面的字符至少n次
-
向往的地方很远,喜欢的东西很贵,这就是我努力的目标。