美文网首页Linux基础学习教程
Linux 基础教程 22-正则表达式

Linux 基础教程 22-正则表达式

作者: Surpassme | 来源:发表于2017-04-27 23:15 被阅读21次

正则表达式定义

  正则表达式(Regular Expression)是一种字符模式,用来查找匹配的字符。通过Linux中的工具(如grep/sed等)能够在处理数据时,使用正则表达式对数据进行匹配过滤,并将匹配到的数据显示出来,未匹配的数据过滤掉。
  正则表达式的基本元素包含普通字符元字符

  • 普通字符:即可以字面的意思去理解,如a只能理解为英文小字母a,没有其他隐藏含义。
  • 元字符:在正则表达式中具有特殊意义的专用字符。如*符号的字面意思只是一个符号,而在正则表达式中则表示重复前面字符0次或更多次。

POSIX标准将正则表达式分为两类:基本正则表达式扩展正则表达式

下表中将列出常用的正则表达式字符及其含义

常用元字符

符号 功能
. 匹配除换行符以外的任意字符
\w 匹配字母、数字、下划线或汉字
\s 匹配任意的空白字符
\b 匹配单词的开头或结尾的位置
^ 匹配字符串的行首,如果在[ ]里面则代表非
$ 匹配字符串的末尾

常用限定符

符号 功能
* 重复0次或更多次在*字符之前的字符
+ 重复一次或更多次
? 重复0次或一次
{n} 重复n次
{n,} 重复至少n次,即重复>=n次
{n,m} 重复n到m次

常用反义词

符号 功能
\W 匹配任意不是字母、数字、下划线、汉字的字符
\S 匹配任意不是空白符的字符
\B 匹配不是单词开头或结束的位置
[^a] 匹配除了a以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

其他常用

符号 功能
\ 转义符,屏蔽一个元字符的特殊含义
[] 匹配中括号里面的任意一个字符,如[abc]d,可以匹配ad、bc或cd
() 将正则表达式的一部分括起来组成一个单元,从而实现对整个单元使用数量限定或匹配
| 连接两个子表达式,表示或关系
[[:xxx:]] POSIX预定义一些命名字符,
[[:digit:]]表示数字[0-9]
[[:lower:]]表示小写字母 [a-z]

POSIX字符类

类名 含义
[:upper:] 表示大写字母[A~Z]
[:lower:] 表示小写字母[a~z]
[:digit:] 表示数字[0~9]
[:alnum:] 表示大小写字母和数字[A~Z a~z 0~9]
[:space:] 表示空格或TAB键
[:alpha:] 表示大小写字母[A~Z a~z]
[:cntrl:] 表示Ctrl键
[:graph:] 表示ASCII码33~126之间的字符
[:print:] 表示ASCII码33~126之间的字符
[:xdigit:] 表示16进制的数字[0~9 A~F a~f]

正则表达式在线测试网址:http://rubular.com/
正则表达式测试工具推荐:Notepad++(https://notepad-plus-plus.org/),使用查找功能中的正则表达式查找

  在本节中,正则表达式只讲到一些基础部分,如果大家感兴趣,可以自行查阅部分资料。

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

MyQRCode.jpg

相关文章

网友评论

    本文标题:Linux 基础教程 22-正则表达式

    本文链接:https://www.haomeiwen.com/subject/wqznzttx.html