正则表达式 元字符和集合
正则表达式的概念
正则表达式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个单字符