您现在的位置是:主页 > 数据库技术 > 数据库技术

Shell中正则表达式怎么用

IDCBT2021-12-31服务器技术人已围观

简介这篇文章主要介绍Shell中正则表达式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 正则表达式 正则表达式:编写处理字符串的程序或网页时,用

这篇文章主要介绍Shell中正则表达式怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

正则表达式

    正则表达式:编写处理字符串的程序或网页时,用于描述查找符合某些复杂规则的字符串的工具。换句话说,就是文本规则的代码。
     正则表达式与通配符类似,是一种进行文本匹配的工具,但是它可以更精确的描述匹配需求。常见的支持正则表达式的工具有:匹配文本行的 grep 工具族;改变输入流的 sed 流编辑器;处理字符串的语言 awk、python、perl、Tcl 等;文件查看程序或分页程序 more、page、less 等;文本编辑器 ed、vi、emacs、vim 等。
     正则表达式内部有多种方法嵌入注释,因此它具有自文档化(self-documenting)的能力。
     \b 是正则表达式的一个特殊代码(元字符,meta character),代表单词的开头或者结尾,也就是单词的分界处。通常英文的单词是由 空格、标点符号或者换行来分隔的,但是 \b 并不匹配它们中的任何一个,只匹配一个“位置” - 这个位置的前一个字符和后一个字符不全是(一个是,一个不是或不存在) \w。“.”是另一个元字符,匹配除了换行符以外的任意字符,“*”指定它之前的内容可以连续重复出现任意次。“.*”就表示任意数量的不包含换行的字符。“\d”元字符匹配一位数字(0 或者 1 或者 2 ……),\d{n}表示“\d”必须连续重复匹配 n 次。
     历史上曾经出现过三种 grep,它们都可以用于匹配文本:Grep 是最早的文本匹配程序,使用 POSIX 支持的基本正则表达式(Basic Regular Expression,BRE);Egrep 是扩展的 grep(Extended grep),使用扩展正则表达式(Extended Regular Expression,ERE);Fgrep 是快速 grep(Fast grep),用于匹配固定字符而不是正则表达式。1992 年发布的 POSIX(The Portable Operating System Interface) 标准中,三个版本合而为一。fgrep 和 egrep 可以在所有 UNIX/Linux 系统上使用,但是被标记为 deprecated(不推荐)。
     从最基本的角度将,正则中有元字符(特殊字符)和一般字符匹配这两种基本字符匹配。一般字符指没有任何特殊意义的字符,而元字符则被赋予了某些特殊含义。







     POSIX 标准中 BRE 和 ERE 支持的 meta 字符有相同也有差异;而 Linux 使用的 GNU 版本的 grep 则功能更强,并且可以通过 -G、-E、-F 选项使用 egrep 和 fgrep 功能。



     在 Linux 下的 grep,除了 fgrep 之外,都支持 POSIX 的特殊字符类。其中字符集(POSIX Character class)是以 ‘[:’和‘:]’括起来的字符,而且需要放到 [] 内才能成为正则表达式,例如 [A-Za-z0-9] 与 [[:alnum:]] 等价;排序符号(Collating symbol)是以‘[.’和‘.]’括起来的字符,将多个字符序列视为一个元素,例如 [.cn.] 表示 cn 字符序列;等价字符集(Equivalence class)表示应视为等值的一族字符,使用‘[=’和‘=]’将字符括起来。正则表达式允许将 POSIX 字符集与其他字符集混用,例如 [[:alpha:]!] 匹配任意一个英文字母或者感叹号。

标签:

很赞哦! ()

本栏推荐