Shell 正则表达式概述
发布时间:2023-06-08 14:10:49 所属栏目:教程 来源:
导读:正则表达式 (regular expression)是一些具体有特殊含义的符号,组合在一起的共同描述字符或字符串的方法,通俗来讲正则为描述同一类事物的规则,例如我们生活中描述可以飞行的是事物,则满足这条规则的可以是鸟,蝴
正则表达式 (regular expression)是一些具体有特殊含义的符号,组合在一起的共同描述字符或字符串的方法,通俗来讲正则为描述同一类事物的规则,例如我们生活中描述可以飞行的是事物,则满足这条规则的可以是鸟,蝴蝶,也可以是飞机等。 在 Linux 系统中,正则表达式通常用来对字符或字符串来进行处理,它是用于描述字符排列或匹配模式的一种语言规则。 为什么要用正则表达式 我们知道正则表达式是一个描述字符排列或模式匹配的规则,我们可以利用它来制定自己的规则,获取到我们想要的结果等。在后续的 Shell 三剑客 grep/awk/sed Shell 的学习中,我们会结合正则表达式与这些命令进行结合使用,来实现更强大的文本处理功能。正则表达式是我们 Shell 学习的核心也是难点,在 Linux 中一切皆文件,多文件的处理可以覆盖我们日常工作的 90%,所有熟练掌握正则表达式显得尤为重要,在之后灵活配合其他命令可以非常方便的满足我们的日常处理需求。 Shell 正则表达操作 在学习正则表达式的操作之前我们需要了解下 POSIX 及正则表达式的分类。 POSIX 称为:Portable Operating System Interface(末尾增加 X 只是为了更流畅)的缩写,后来被 IEEE 采纳,由于在早期 Unix 系统时代各厂商发布不同版本的操作系统,各版本之间存在着产品的差异,之后 IEEE 发布了一套 Unix 和类 Unix 系统工作方式规范,至此各常见遵循此规范来达到软件兼容的效果。 正则表达式分类 正则表达式常见的有两种分类: 基本正则表达式:Basic Regular Expression 又叫 Basic RegEx 简称 BREs,在基本正则表达式中作用的元字符为:^ 、$、 . 、[、] 、* ; 扩展正则表达式:Extended Regular Expression 又叫 Extended RegEx 简称 EREs,其为在基本正则表达式上新增了 (、) 、{ 、} 、?、 + 、等元字符元字符,使得正则表达式更加简洁易用。 在学习正则表达式前需要先学习字符。 POSIX 字符 通用 POSIX 原字符如下: [:alnum:] 字母数字[-z A-Z -][:alpha:] 字母[-z A-Z][:blank:] 空格或制表键[:cntrl:] 任何控制字符[:digit:] 数字 [-][:graph:] 任何可视字符(无空格)[:lower:] 小写 [-z][:print:] 非控制字符 [:punct:] 标点字符[:space:] 空格[:upper:] 大写 [A-Z][:xdigit:] 十六进制数字 [- - A-F] 特殊字符 在扩展正则表达式中加上 \ 则被认为其具有特殊含义: \w 匹配任意数字和字母,等效[-zA-Z0-9_]\W 和\w相反,等效[^-zA-Z0-9_]\ 匹配字符串开始或结束,等效\<和\>\s 匹配任意的空白字符 \S 匹配非空白字符 2.1.4 区别 基本正则表达元字符:只有 ^$.*[]; 扩展正则表达式元字符:^$.[]*+(){}?|; 扩展正则表达式对于 {m,n} 和 () 不需要再向基本正则表达式需要 \ 来转译。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |