shell正则

文章详细介绍了Linux系统中通配符和正则表达式的使用,包括通配符的四种类型以及正则表达式的元字符匹配、次数匹配和位置匹配规则。还提到了正则表达式的扩展元字符功能和POSIX字符簇的概念,这些都是文本处理和文件查找的重要工具。
摘要由CSDN通过智能技术生成

通配符与正则表达式

正则表达式一般用于处理文本内容,常用命令有grep,sed,awk,vim等
通配符一般用于匹配文件名,常用命令有find,ls,cp等

Linux通配符包括以下几种:

- *:匹配任意数量的字符(包括0个字符)

- ?:匹配任意单个字符

- []:匹配方括号中的任意一个字符

- [!]:匹配不在方括号中的任意一个字符

正则表达式是一种更为强大的模式匹配工具,它可以匹配更复杂的模式。

构成
1.元字符(基本元字符、扩展元字符)
2.除元字符之外的任意字符都是表示他字面意思的正则表达式

下面详细介绍

匹配特征:贪婪匹配,尽可能匹配多的基本元字符

基本元字符

字符匹配:
                  .        任意单个字符
                 [ ]       匹配[ ]内的任意单个字符
                 [^]       首位为^表示取反,不匹配[ ]中的字符 
                 [a-z]    匹配a-z中任意一个小写字母
                 [0-9]     数字
                 [A-Z]    大写字母
                 [a-zA-Z]      所有字母
                 [^a-zA-Z0-9]  所有符号 

次数匹配:
                    *             匹配*前面的字符重复0次到多次
                    \{n\}       匹配前面的字符刚好重复n次
                    \{n,m\}     前面的字符重复n次到m次
                    \{,n\}        前面的字符最多重复n次 小于n次
                    \{n,\}         前面的字符最少重复n次 大于n次 

位置匹配 :
                   ^ 行首
                    $ 行尾
                   \< 词首
                    \> 词尾
                  \<hello\> 匹配单词hello 

扩展元字符 

 + 前面的字符至少重复1次 / 1次或者 1次以上
? 前面的字符重复0次或1次
| 或  x|y 匹配x或y z|food 匹配z或food  [zf]ood  匹配zood 或food(m|f)ood
{} 次数匹配
() 分组     \数字 引用分组的内容 1-9
前向: 在正则中引用
后向: 在其他地方引用, \0表示引用模式中所有的内容 \0 ⇔ &
& 前面匹配的全部内容

\n 匹配一个换行符

\r  匹配一个回车符

\t  匹配一个制表符

\s  匹配一个不可见字符   相当于[\f\n\r\t\v]

\S  匹配一个任何可见字符    相当于[^\f\n\r\t\v]

正则表达式POSIX字符簇

[[:alnum:]]   字母与数字字符

[[:alpha:]]    字母字符

[[:blank:]]     空格与制表符

[[:digit:]]       数字字母

[[:lower:]]     小写字母

[[:upper:]]     大写字母

[[:punct:]]      标点符号

[[:space:]]      换行符,回车符在内所有空白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值