正则表达式的学习笔记 - 未完

本文详细解析了正则表达式的使用技巧,包括基础符号的意义、如何匹配特定字符及组合模式,并介绍了扩展正则表达式的高级应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章收集了我学习正则表达式过程中遇到的一些问题,因此将逐步更新。

 

1) 正则表达式中的字符* 可以用来代表任意(0或多个)字符,如“o*”代表的是“拥有空字符或一个 o 以上的字符”。

 

      所以匹配一个以上o,要使用这样的表达式“oo*”。匹配两个以上o,使用“ooo*”,以此类推。可见“oo*”中的第二个o与*是一体的,表示匹配0个或多个o。

      这里稍微解释几句。o*匹配0个或多个o,因为0个o也在匹配的范围内,所以要匹配1个以上o,就要在前面再加个o,变成oo*。  

 

2) 表示以.结尾的行,.前要用/解除其特殊意义。

      grep -n '/.$'   regular_expression.txt

 

3) .*表示什么?

      . 表示任意一个字符;*表示任意0个或者多个字符。一次.*表示0个或多个任意字符。

 

4) 找出任意数字。道理和1)中解释的一样,[0-9]实际上匹配一个字符,它必须是一个数字。

      grep -n '[0-9][0-9]*' regular_express.txt

 

       还有一个例子:

       grep -n 'g[ld]' regular_express.txt
       搜寻含有 (gl) 或 (gd) 的那一行。

 

5)  扩展正则表达式

       egrep是grep -E的别名,它支持扩展正则表达式(RE)。

       5.1)+  重复一个或者一个以上的前一个RE字符

               例:egrep -n 'go+d' regular_expression.txt

                     匹配god,good,goood,...

       5.2)? 零个或一个前一个RE字符

               例:egrep -n 'go?d' regular_expression.txt

                     匹配gd,god两个字符串

       5.3)(|)用或的方式查找多个字符串

               例:egrep -n 'g(la|oo)d' regular_expression.txt

                     匹配glad或者good

                     egrep -n 'A(xyz)+C' regular_expression.txt

                     匹配AxyzxyzxyzxyzC,A和C之间有一个或多个xyz

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值