正则表达式

1 正则简介

1 正则,正则表达式

  • 就是一些具有特殊含义的符号:? . * + ^ $ () {}

 建议这样记

通配符:针对文件名进行匹配查找的

正则表达式:针对文件的内容进行匹配查找的

 2 基本正则

2.1 匹配位置

匹配行首
^

匹配行尾

$

 匹配单词首部

\<

匹配单词尾部

\>

 案例1:找到包含root的行

grep "root" a.txt
案例2:找到以root为开头的行
grep "^root" a.txt
案例3:找到以root为结尾的行
grep "root$" a.txt

2.2 匹配范围

[] 表示限定一个范围
[0-9] 表示0-9之间的任意一个数字
[a-z] 表示任意一个小写字母
[A-Z] 表示任意一个大写字母
[0-9a-zA-Z] 表示任意一个数字或者字母
[a-zA-Z] 表示任意一个字母 = [a-Z]
[acd39] 表示这五个字符中的任意一个字符
[[:space:]] 表示一个空格
[[:digit:]] 表示任意一个数字
[[:lower:]] 表示任意一个小写字母
[[:upper:]] 表示任意一个大写字母
[[:alnum:]] 表示任意一个数字或者字母
[[:punct:]] 表示任意一个符号
[[:digit:][:space:]] 表示一个空格或者任意一个数字
案例:匹配以字母a或c或f为开头的行
grep "^[acf]" new1.txt
案例:匹配以数字或者空格或者#为开头的行
grep "^[[:space:][:digit:]#]" new1.txt
grep "^[[:digit:]# ]" new1.txt
案例:匹配以#为开头,后面是空格,空格后是非空字符
grep "^#[[:space:]][[:alnum:][:punct:]]" new1.txt
匹配范围以外的字符
[^xxxx]
案例1:匹配135以外的字符
grep "[^135]" aa.txt
案例2:匹配不是以1 3 5为开头的行
grep "^[^135]" aa.txt
案例3:匹配以空格为开头的行
grep "^[[:space:]]" a.txt
案例4:匹配以非空格为开头的行
grep "^[^[:space:]]" a.txt

2.3 次数匹配

. 表示任意一个字符
* 表示其前面的字符出现任意次数【任意次可以是 0次 1次 无数次】
\{m,n\} 其前面的字符出现最少m次,最多n次
\{3,7\} 表示其前面的字符出现最少3次,最多7次
\{3,\} 表示其前面的字符出现最少3次
\{,7\} 表示其前面的字符出现最多7次
\{3,3\} 表示其前面的字符出现3次
? 表其前面的字符出现0次或者1次[最多一次] - 扩展正则的选项
+ 表其前面的字符出现最少一次 - 扩展正则的选项

 案例:过滤去文件a.txt中,a前面至少有3个b的行

grep "b\{3,\}a" a.txt
案例:过滤去文件a.txt中,a前面最多有1个b的行
grep -E "b?a" 4.txt
grep "b\{,1\}a" 4.txt
案例:过滤去文件a.txt中,a前面最少有1个b的行
grep -E "b+a" 4.txt

常用的组合

.* 可表示任意个任意字符
案例:匹配以#为开头的行,而且以数字为结尾的行
grep "^#.*[0-9]$"
案例:匹配出现了两个数字的行
grep "[0-9].*[0-9]"

2.4 分组

\( 定位分组的位置 \)
\1 引用第一个分组的内容
\2 引用第二个分组的内容
案例:匹配出现两个相同数字的行
grep "\([0-9]\).*\1" 4.txt
测试代码
i love my lover
he love his liker
she like her lover
she love her liker
案例:输出前面一致的行,例如前后都是love或者前后都是like
grep -E "(l..e).*\1" 5.5xt

2.5 或

| 或
测试对象
sadfa cat asfasdf Cat a asdf
案例:匹配cat Cat
grep -E "(c|C)at" 6.txt
grep -E "(cat|Cat)" 6.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值