正则表达式
发布时间:2020-12-13 23:08:03 所属栏目:百科 来源:网络整理
导读:果要用grep 查找一个模式,如何表示这个模式,这一类字符串,而不是一个特定的字符串呢?从 这两个简单的例子可以看出,要表示一个模式至少应该包含以下信息: 字符类(Character Class):如上例的x和y,它们在模式中表示一个字符,但是取值范围是 一类字符中的任意一
果要用grep 查找一个模式,如何表示这个模式,这一类字符串,而不是一个特定的字符串呢?从 这两个简单的例子可以看出,要表示一个模式至少应该包含以下信息: 字符类(Character Class):如上例的x和y,它们在模式中表示一个字符,但是取值范围是 一类字符中的任意一个。 数量限定符(Quantifier): 邮件地址的每一部分可以有一个或多个x字符,IP地址的每一部 分可以有1-3个y字符各种字符类以及普通字符之间的位置关系:例如邮件地址分三部分, 用普通字符@和.隔开,IP地址分四部分,用.隔开,每一部分都可以用字符类和数量限定符描述。 为了表示位置关系,还有位置限定符(Anchor)的概念 字符 含义 举例 . 匹配任意一个字符 abc. 可以匹配abcd 、abc9 等 [] 匹配括号中的任意一个字符 [abc]d可以匹配ad 、bd 或cd - 在[]括号内表示字符范围 ^ [^xy] 匹配除xy 之外的任一字符,因 位于[]括号内的开头,匹配除括 [[: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 ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |