关于正则的一点总结 (2)

关于正则的一点总结

4. 特殊符号: 字符 说明 举例
\   转义字符,普通字符转义为特殊字符,特殊字符转义为普通字符   <写成<匹配单词开头,.前面加上\写成\.. 的字面值  
()   将正则表达式的一部分括起来组成一个单元,可以对整个单元使用数量限定符   ([0-9]{1,3}\.){3}[0-9]{3}匹配IP地址  
|   连接两个子表达式,表示或的关系   n(o|either)匹配no或neither  

应用:

( )将包含内容括起来作为一个整体,进而通过数量限定符限定。

关于正则的一点总结

| 用来级联多个条件,只要有任意一个匹配,即可匹配,表示或者关系,我们称之为析取符

关于正则的一点总结

正则表达式版本 其他常用通用字符集及其替换 符号 等价于 匹配
\d   [0-9]   数字字符  
\D   [^0-9]   非数字字符  
\w   [a-zA-Z0-9_]   数字字母下划线  
\W   [^\w]   非数字字母下划线  
\s   [_\r\t\n\f]   表格,换行等空白区域  
\S   [^\s]   非空白区域  

于是, 我们现在可以用这些符号来简化我们正则表达式的编写了?试试

关于正则的一点总结

可是结果好像并不如我们所愿?其实这里还与正则表达式版本有关。正则分为以下几个版本:

基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)

扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)

Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)

在grep中指定相应的参数即可,而这几个版本中默认的就是基本正则,带上-E选项就是扩展正则,而带上-P参数就是用perl版正则。解决前面的问题,我们这里让grep带上-P选项便可解决了

版本间区别

正则表达式的Extended规范和Basic规范基本相同。只是在Basic规范下,有些字符 ?+{}|() 应解释为普通字符,要表示上述特殊含义则需要加  转义。

反之,在Extended规范下, ?+{}|() 应该被理解成特殊含义,要取其字面值,也要对其进行  转义。

所以, grep 工具带上 -E 选项,表示使用扩展正则来进行匹配,若没有,则表示使用基准正则进行匹配。亦或者直接使用egrep 命令操作

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpszfy.html