微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式介绍

正则表达式定义:是一些字符或是特殊字符串模式的集合。

功能:根据模式搜索文本,并将符合模式的文本行显示出来。

Pattern(模式): 文本字符和正则表达式的元字符组合而成匹配条件


#正则表达式就是里面有一些元字符,这些字符不表示它本身的意思,而表示通配的意义。


注:认情况下正则表达式工作在贪婪模式下


grep:

#文本搜索过滤工具,支持基本正则表达式

SYnopSIS: grep [OPTIONS] PATTERN [FILE...]

Options:

--color=auto:对匹配到的文本着色后高亮显示

-i:igmorecase,忽略字符的大小写;

-o:仅显示匹配到的字符串本身;

-v:--invert-match:反向显示;

-n:输出行号

-c:统计被匹配到的字符串出现的次数

-w:以字符为单位精确匹配

-E:--entended-regexp:支持扩展的正则表达式元字符;

-q:--quiet,--silent;静模式,不输出任何信息;

-A #:after,后#行

-B #:before,前#行

-C #:context,前后各#行




基本正则表达式元字符:

字符匹配:

. :匹配任意单个字符;

[] :匹配指定范围内的任意单个字符;

[^]:匹配指定范围外的任意单个字符;

[:digit:]

[:alpha:]

[:upper:]

[:lower:]

[:space:]

[:alnum:]

[:punct:]




匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数

*: 匹配其前面的字符任意次;0.1,多次;

.*:匹配任意长度的任意字符

?: 匹配其前面的字符0次或1次;即前面的字符是可有可无的;

+: 匹配其前面的字符一次或多次;即前面的字符要出现至少一次;

{m}:匹配前面的字符m次;

{m,n}:匹配其前面的字符至少m次;至多n次;




位置锚定:

^ :行首锚定;用于模式的最左侧;

$ :行尾锚定:用于模式的最右侧;

^PATTERN$:用PATTERN来匹配整行;

^$:空白行;

^[[:space:]]*$:空行或包含空白字符的行

<或b:词首锚定,用于单词的最左侧;

>或b:词尾锚定,用于单词的最右侧;

<PATTERN>:精确匹配完整单词;


分组及引用

():将一个或多个字符捆绑在一起,当做一个整体进行处理

(xy)*ab


Note:

分组括号中的模式匹配到的内容会被正则表达式引擎自动记录于内部的变量中,这些变量为:

1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符;

2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符;

3:...

...

*后向引用:引用前面的分组括号中的模式所匹配到的字符


扩展正则表达式的元字符

字符匹配:

.:

[]:

[^]:


次数匹配:

*:任意次

?:0次或1次,

+:其前字符至少一次;

{m}:期前的字符m次;

{m,n}:至少m次,至多n次;


位置锚定:

^:行首锚定

$:行尾锚定

<,b:词首锚定

>,b:词尾锚定

分组及引用:

():分组;括号内的模式匹配到的字符会被记录与正则表达式引擎的内部变量中;

后向引用:1,2...

或:

a|b:

C|cat:C或cat

(c|C)at:cat或Cat

原文地址:https://www.jb51.cc/regex/359004.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐