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

正则表达式、扩展正则表达式

发布时间:2020-12-14 02:26:31 所属栏目:百科 来源:网络整理
导读:正则表达式、扩展正则表达式及其应用 1. 什么是正则表达式? 正则表达式(REGEXP:REGularEXPression),就是一种处理字符的方法,它以行为单位进行字符串处理的。其实就是透过一些特殊符号的辅助,来匹配筛选一些字符串,可以让使用者轻易的达到【搜寻/删除/

正则表达式、扩展正则表达式及其应用

1.什么是正则表达式?

正则表达式(REGEXP:REGularEXPression),就是一种处理字符的方法,它以行为单位进行字符串处理的。其实就是透过一些特殊符号的辅助,来匹配筛选一些字符串,可以让使用者轻易的达到【搜寻/删除/取代】某些字符串的处理程序。

2.什么是扩展正则表达式?

正则表达式依照不同的严谨度分为正则表达式和扩展正则表达式,扩展正则表达式可以处理更复杂的字符串。可以理解为是正则表达式式的扩充吧。

3.正则表达式与bash的通配符

刚开始接触通配符与正则表达式时,总是弄不清通配符与正则表达式的关系区别,什么时候用的是通配符,什么时候又是正则表达式。其实正则表达式是一种表示法,只要

工具程序支持这种表示法,该工具程序就可以用来作为正则表达式的字符处理之用。例如vi、grep、awk、sed等,因为它们支持正则表达式,所以,他们可以使用正则表达式进行字符处理。而我们最先接触的通配符其实是bash自己本身的通配符bash并不支持正则表达式,所以bash只能用自己本身的通配符而已。

4.基本正则表达式与扩展正则表达式通配符

基本正则表达式

意义

扩展正则表达式

意义

.

匹配任意单个字符

.

匹配任意单个字符

[]

匹配指定范围内的任意单个字符

[]

匹配指定范围内的任意单个字符

[^]

匹配指定范围外的任意单个字符

[^]

匹配指定范围外的任意单个字符

*

匹配其前面的字符任意次

*

匹配其前面的字符任意次

.*

任意长度的任意字符

.*

任意长度的任意字符

+

匹配其前面的字符至少1

?

匹配其前面的字符1次或0

?

匹配其前面的字符1次或0

{m,n}

匹配其前面的字符至少m次,至多n

{m,n}

^

锚定行首,此字符后面的任意内容必须出现在行首

^

锚定行首,此字符后面的任意内容必须出现在行首

$

锚定行尾,此字符前面的任意内容必须出现在行尾

$

锚定行尾,此字符前面的任意内容必须出现在行尾

^$

空白行

^$

空白行

&;b

锚定词首,其后面的任意字符必须作为单词首部出现

/<

锚定词首,其后面的任意字符必须作为单词首部出现

&;b

锚定词尾,其前面的任意字符必须作为单词的尾部出现

&;

锚定词尾,其前面的任意字符必须作为单词的尾部出现

()

分组(用于后向引用)

()

| (用于后向引用)

或者

字符集

[:space:]:空白字符

[:punct:]:标点符号

[:lower:]:小写字母

[:upper:]: 大写字母

[:alpha:]: 大小写字母

[:digit:]: 数字

[:alnum:]: 数字和大小写字母

6.正则表达式的应用

1.grep、egrep

grep :使用基本正则表达式定义的模式来过滤文本的命令,并将符合模式的文本行显示出来(做部分匹配,匹配时整行有部分被匹配到时,显示整行)egrep是grep的扩展,支持扩展正则表达式的元字符

grep [options] PATTERN [FILE...]

-i 不区分大小写

--color

-v: 显示没有被模式匹配到的行

-o:只显示被模式匹配到的字符串

-E 使用扩展的正则表达式

-n 显示行号


grep -E = egrep

-A 显示被搜到的内容及后n行

-B 显示被搜到的内容及前n行

-C 显示被搜到的内容及前后n行

2.sed

sed [ options ] 'AddressCommand' file ...

-n 静默模式,不打印模式空间里的内容

-i 直接修改源文件

-e script -e script: 可以同时执行多个脚本

-f /path/to/sed_scripts file

-r 表示使用扩展这则表达式

Address: 1.StartLine,EndLine

比如1,100

$ 表示最后一行

2./RegExp/ 模式匹配

/^root/

3./pattern1/,/pattern2/

第一次被被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行

4.linenumber 指定的行

5.StartLine,+N 从startline开始,向后的N行:

Commd: d 删除符合条件的行

p 显示符合条件的行

astring 指定的行后面追加的新行,内容为string

n 可用于换行

istring 指定的行前面追加的新行,内容为string

r file 将指定的文件的内容添加至符合条件的行处

w 将指定地址的范围的行另存至指定的文件中

s/parttern/string/修饰符 查找并替换 默认只替换每一行第一次出现的字符串

加修饰符

g 全局替换

i 查找时忽略大小写

在替换中不支持字符匹配,可以用&引用匹配到的内容,也支持后向引用

(分割符可以是很多符号如@、#、/但分隔符必须相同)

(编辑:李大同)

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

    推荐文章
      热点阅读