Linux中的正则表达式

正则表达式和通配符 :

linux中,有通配符和正则表达式,这是两个不同的概念

通配符:它是由shell解析,并且一般用于匹配文件名。如:ls

正则表达式:是一个字符匹配标准,可以匹配文本中的内容

一些命令工具按此标准实现字符匹配,常用于支持正则表达式的工具,grepsed等。一般用于匹配文件中的内容

 

通配符 :

* :匹配任意多个字符

:匹配任意一个字符

[...]:匹配中括号内出现的任意一个字符

[!...]:不匹配中括号内出现的任意一个字符

 

符号 " ? " 表示匹配一个字符 , 而 " * "表示匹配多个字符 .

上图中的 ls pass[abcd]d  字符串中的 [abcd] 是表示在 pass_d 的下划线处的位置可以匹配到 abdw 的字符.

上图中的 ls pass[!abdw]d 字符串中的 [!abcd] 表示在 pass_d 的下划线处可以匹配除了 abdw 的其他所有字符.

上图则匹配到了 passwd 的文件.

 

正则表达式 :

字符匹配

:匹配任意单个字符

* :匹配其前面一个字符出现任意次

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

:匹配其前面一个字符出现至少一次(在扩展正则表达式中)

位置匹配

^:锚定行首

$:锚定行尾

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

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

\B:非单词的开头或结尾

^$空白行

\ :通常用于打开或关闭后续字符的特殊含义

 

分组()

(ab)* : 匹配ab这个分组出现任意次

\1:引用第一个左边以及与之对应的右边所包括的所有内容,同理还有\2,\3

 

特殊子字符类:

[:alnum:] :任何字母和数字

[:alpha:] :任何字母

[:cntrl:] :控制字符. ASCII表中对应八进制000 037, 177 ('DEL').

[:digit:] :任何数字

[:graph:] :匹配打印字符,相当于'[:alnum:]' +'[:punct:]'.

[:lower:] :小写字母

[:print:] :可打印字符,相当于 '[:alnum:]', '[:punct:]', space.

[:punct:] 标点符号,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'

[:space:] 空白字符,tab, newline, vertical tab, form feed, carriage return, and space.

[:upper:] 大写字母

[:xdigit:] 任何16进制的数字,相当于[0-9a-fA-F]

 

转载自 : 51自学网​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值