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

正则表达式

发布时间:2020-12-13 22:10:29 所属栏目:百科 来源:网络整理
导读:正则表达式:RegulaExpreession,简写为REGEXP. 作用:能够使用一种通配符的通配机制来完成文本通配的。 结构:由正常的文本符号和通配符以及其他格式控制符共同组成。 正则表达式分为两类: 一、基本正则表达式----grep。 二、扩展正则表达式----egrep。 一

正则表达式:RegulaExpreession,简写为REGEXP.
作用:能够使用一种通配符的通配机制来完成文本通配的。
结构:由正常的文本符号和通配符以及其他格式控制符共同组成。

正则表达式分为两类:

一、基本正则表达式----grep。
二、扩展正则表达式----egrep。

一、基本正则表达式----grep。

grep:全局搜索正则表达式并且把能够匹配到的一行打印出来。
作用:文本搜索工具,根据用户指定的”pattern(过滤条件)“对目标文本逐行进行匹配检查;打印出符合条件的行;


使用格式;grep[OPTIONS]PATTERN[FILE...]
常用选项:
--color=auto:对匹配到的文本着色后高亮显示。
-i:不区分字母大小写。
-o:仅显示匹配到的内容。
-v:能够匹配到的不显示,不能够匹配到的反而显示----就叫做反向匹配。
-E:支持扩展的正则表达式;
-q:静默模式,不管能否匹配得到,都不输出任何信息。
-e:可以同时搜索多种模式,-----多模式机制。

wKiom1bj5hjhiXbqAAAgySG5GtY597.png

-f:将多模式编写在脚本中,通过greap-f文件名来完成搜索 。
-A#:显示匹配到的行和匹配到的行的下#行
-B#:显示匹配到的行和匹配到的行的上#行。
-C#:显示匹配到的行和匹配到的行的上#行以及下#行。
基本正则表达式元字符:
(1)、字符匹配:
.:匹配任意单个字符。
[]:匹配范围内的任意单个字符。
[^]:匹配范围外的任意单个字符。
[[:digit:]]:表示所有数字[0-9]。

[[:lower:]]:表示所有小写字母等同于[a-z]。

[[:upper:]]:表示所有大写字母等同于[A-Z]。

[[:alpha:]]:表示所有字母等同于[a-zA-Z]。

[[:alnum:]]:表示所有字母和数字等同于[0-9Na-zA-Z]。

[[:space:]]:表示空白字符。

[[:punct:]]:表示标定符号。

[[:print:]]:表示非空字符(包括空格)。

[[:cntrl:]]:表示所有控制字符 。

(2)、匹配次数:

*:匹配前面的字符任意次(0,1或多次);
.*:任意长度的任意字符;
+:匹配前面的字符至少1次;
?:匹配前面的0次或1次,即前面的字符可有可无,要是有,则只能有一个。
{m}:其前面的字符出现m次,m为非负整数;
{m,n}:其前面的字符出现m次,m为非负整数;[m,n]
{0,n}:至多n次;
{m,}:至少m次;
(3)、位置锚定:
限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的哪个位置;

^:行首锚定;格式:`^PATTERN`。
$:行尾锚定;格式:`PATTERN$`。
^PATTERN$:要让PATTERN完全匹配一整行。
^$:空行。
^[[:space:]]*$:匹配空行或空白字符。


&;或b:词首锚定,用于单词模式的左侧,格式为&;PATTERN或bPATTERN
&;或b:词尾锚定,用于单词模式的右侧,格式为PATTERN&;或PATTERNb
&;PATTERN&;:单词锚定;


(4)、分组与引用:
(PATTERN):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理。

(PATTERN).*1:表示引用前面的内容。

二、egrep:

扩展正则表达式----egrep。

使用格式:egrep[OPTIONS]PATTERN[FILE...]

扩展正则表达式的元字符:


(1)、字符匹配:
.:匹配任意单个字符。

|:表示符号两边都可以,例:a|b,意思是a或者b。

[]:匹配范围内的任意单个字符。
[^]:匹配范围外的任意单个字符。
[[:digit:]]:表示所有数字[0-9]。

[[:lower:]]:表示所有小写字母等同于[a-z]。

[[:upper:]]:表示所有大写字母等同于[A-Z]。

[[:alpha:]]:表示所有字母等同于[a-zA-Z]。

[[:alnum:]]:表示所有字母和数字等同于[0-9Na-zA-Z]。

[[:space:]]:表示空白字符。

[[:punct:]]: 表示标定符号。

[[:print:]]:表示非空字符(包括空格)。

[[:cntrl:]]:表示所有控制字符 。


(2)、匹配次数:

*:匹配前面的字符任意次(0,1或多次)。

?:匹配前面的字符0次或1次。
+:匹配前面的字符1次或多次。
{m}:匹配前面的字符m次。
{m,n}:匹配前面的字符至少m次,至多n次。


(3)、位置锚定:
^:行首锚定;格式:`^PATTERN`。
$:行尾锚定;格式:`PATTERN$`。

&;或b:词首锚定,用于单词模式的左侧,格式为&;PATTERN或bPATTERN
&;或b:词尾锚定,用于单词模式的右侧,格式为PATTERN&;或PATTERNb
&;PATTERN&;:单词锚定。
(4)、分组及引用:

(PATTERN):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;

(编辑:李大同)

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

    推荐文章
      热点阅读