加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 23:08:03 所属栏目:百科 来源:网络整理
导读:果要用grep 查找一个模式,如何表示这个模式,这一类字符串,而不是一个特定的字符串呢?从 这两个简单的例子可以看出,要表示一个模式至少应该包含以下信息: 字符类(Character Class):如上例的x和y,它们在模式中表示一个字符,但是取值范围是 一类字符中的任意一
果要用grep 查找一个模式,如何表示这个模式,这一类字符串,而不是一个特定的字符串呢?从
这两个简单的例子可以看出,要表示一个模式至少应该包含以下信息:
字符类(Character Class):如上例的x和y,它们在模式中表示一个字符,但是取值范围是
一类字符中的任意一个。
数量限定符(Quantifier): 邮件地址的每一部分可以有一个或多个x字符,IP地址的每一部

分可以有1-3个y字符各种字符类以及普通字符之间的位置关系:例如邮件地址分三部分,

用普通字符@和.隔,IP地址分四部分,用.隔开,每一部分都可以用字符类和数量限定符描述。

为了表示位置关系,还有位置限定符(Anchor)的概念

表 32.1. 字符类
字符 含义 举例
. 匹配任意一个字符 abc. 可以匹配abcd 、abc9 等
[] 匹配括号中的任意一个字符 [abc]d可以匹配ad 、bd 或cd

- 在[]括号内表示字符范围

^ [^xy] 匹配除xy 之外的任一字符,因 位于[]括号内的开头,匹配除括

此[^xy]1可以匹配a1、b1但不匹 号中的字符之外的任意一个字符配x1、y1
[[:xxx:]] [0-9a-fA-F] 可以匹配一位十六进制数字
grep 工具预定义的一些命名字符 [[:alpha:]]匹配一个字
类母,[[:digit:]]匹配一个数字
表 32.2. 数量限定符
字符 含义 举例

? 紧跟在它前面的单元 [0-9]?.[0-9] 匹配0.0 、2.3 、.5 等,由于.在正则表达

+ 紧跟在它前面的单元 [a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+.[a-zA-Z0-9_.-

应匹配零次或一次 应匹配一次或多次 ]+ 匹配email地址
* 紧跟在它前面的单元 zA-Z_]+[a-zA-Z_0-9]* 匹配C语言的标识符
应匹配零次或多次
{N} 紧跟在它前面的单元
应精确匹配N次
式中是一个特殊字符,所以需要用转义一下,取字面


{N,} 应匹配至少N次
{,M} 紧跟在它前面的单元
应匹配最多M次
{N,M} 紧跟在它前面的单元
应匹配至少N次,最
多M次
表 32.3. 位置限定符 字符 含义 举例 ^ 匹配行首的位置 ^Content 匹配位于一行开头的Content $ 匹配行末的位置 ;$ 匹配位于一行结尾的;号,^$ 匹配空行 &; 匹配单词开头的位置 &;th 匹配... this,但不匹配ethernet 、tenth &; 匹配单词结尾的位置 p&; 匹配leap ...,但不匹配parent、sleepy b 匹配单词开头或结尾的位置 batb匹配... at ...,但不匹 配cat 、atexit、batch B 匹配非单词开头和结尾的位 BatB匹配battery,但不匹配... attend、hat ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读