正则表达式 元字符和集合
正则表达式的概念
正则表达式Regular Expressions应用范围
字符串匹配操作和替换操作
举例:Linux中的vi more grep yacc lex awk sed
其他:Visual Studio,Word等文本编辑器
正则表达式的功能
描述一个字符串模式
注意
正则表达式规则与文件名通配符规则不同
- 正则表达式规则用于文本处理的场合
- 文件名匹配规则用于文件处理的场合
不同软件对正则表达式的定义会有差异
正则表达式的特殊字符(元字符)
6个元字符
.
、*
、[
、\
、^
、$
。
所谓的元字符,就是一些控制字符,这些有特殊的含义。
转义
用反斜线可以取消特殊字符的特殊含义。
如:正则表达end\.
只与字符串end.
匹配
单字符正则表达式
长的正则表达式由单字符正则表达式构成的
非特殊字符与其自身匹配
如:正则表达式a与字符串a匹配, b与b,/与/
转义字符(\)
\.
、\*
、\$
、\^
、\[
、\\
。
正则表达式\*
与字符串*
匹配,与字符串\*
不匹配。
转义字符后除以上六种之外的不该出现其他字符,例如:不该出现\u,这样的组合被视为undefined(未定义的),后出的软件有可能会有特殊的解释
圆点
圆点.
:匹配任意单字符
定义集合
基本用法
- 在一对方括号之间的字符为集合的内容,
- 如:单字符正则表达式
[abcd]
与a或b,c,d匹配
- 如:单字符正则表达式
- 圆点,星号,反斜线在方括号内时,代表它们自己
- 如:
[\*.]
可匹配\
、*
、.
这3个单字符本身。
- 如:
用减号-定义一个区间
如[a-d]
、[A-Z]
、[a-zA-Z0-9]
[][] 集合含左右中括号两个字符
减号在最后,则失去表示区间的意义[ad-]
只与a
、d
、-
3个字符匹配。
用^表示补集
^
在集合的开头,则表示与集合内字符之外的任意字符匹配
如:[^a-z]
匹配任一非小写字母[^][]
匹配任一非中括号字符^
不在集合的开头,则失去其表示补集的意义
如:[a-z^]
能匹配a-z
等26个字符和^
字符本身,也就是一共能匹配27个单字符