正则表达式_01

一、常用元字符

元字符相当于数学表达式中的运算符
\    反斜杠    转义字符,例如"\t"将匹配一个制表符Tab,而不是匹配字母"t"
|    管道    表示“或”,即匹配其中任何一个,例如“book|desk”将匹配“book”或“desk”
[]    方括号    表示将匹配指定范围内的字符,例如“[abc]”将匹配a、b和c的任意字符
[^]    方括号+插入符    匹配不在指定组内的字符,例如[^abc]
()    小括号    可以将正则字符和元字符或表达式进行组合,例如“(book|desk)s”,将匹配“books”或“desks”
{}    大括号    为前导表达式指定一个最小或最大匹配的数目,例如"a{3,4}"将匹配“aaa”或“aaaa”
^    插入符    用于指定匹配字符串的头部,也称行首定位符,例如“^hello”,将匹配开头为“hello”的字符串
$    美元符    用于指定匹配字符串的尾部,也称行尾定位符,例如“$world”,将匹配结尾为“world”的字符串
*    星号    匹配0个或多个前导表达式,例如“a*”将匹配0~n个字符“a”组成的字符串
?    问号    匹配一个前导表达式,例如“a?”将匹配“aa”
\<    反斜杠+小于号    词首定位符,例如“\<abc”表示所有包含以"abc"开头的单词的行
\>    反斜杠+大于号    词尾定位符,例如“|>abc”表示所有包含以"abc"结尾的单词的行
.    点号    匹配任意一个字符
-    减号    用于指定字符范围,例如"[a-c]"将匹配包含a、b和c中的任意字符
tips_01:有时需要查找一些包含了系统指定为特殊字符的字符或字符串.在该字符前面加上转义字符"\"即可,
一般意义上讲,下列字符可以认为是特殊字符:$ . ' " * [ ] ^ | { } \ + - ? ( )
tips_02:Linux中使用一些作为特殊字符的元字符时要加上反斜杠,如{}的使用方法为:“a\{1,2\}”,将匹配"a"和"aa"
tips_03:当正则表达式出现在字符串中时,该字符串最好使用单引号字符串表示法(即用单引号将正则表达式包括起来)

二、字符集

字符集表示一个字符范围
[a-zA-Z]    表示匹配任意一个字母
[a-z]        表示匹配任意一个小写字母
[A-z]        表示匹配任意一个大写字母
[0-9]        表示匹配任意一个数字
[0-9\*\+]    表示匹配数字、星号、加号中的任意一个
例:^[A-Z][0-9]$表示匹配一个由一个大写字母和数字组成的字符串
如果在方括号内加上"^"表示取非
例:[^a-z]表示匹配任意一个除小写字母之外的字符

三、字符类


为了方便编程,系统提供了一些预定义的字符集,称为字符类,字符类会对指定的字符范围进行定义
[[:alpha:]]    小写及大写字母,等价于[a-zA-Z]
[[:alnum:]]    小写及大写字母和数字,等价于[a-zA-Z0-9]
[[:cntrl:]]    控制字符,如制表符(tab)、换行符或反斜杠
[[:digit:]]    数字0~9,等价于[0-9]
[[:graph:]]    ASC2码在33~126之间的可打印字符
[[:lower:]]    小写字母,等价于[a-z]
[[:punct:]]    标点符号,包括特殊符号
[[:upper:]]    大写字母,等价于[A-Z]    
[[:space:]]    空白字符,包括空格、水平制表符、垂直制表符、换行、换页、回车
[[:xdigit:]]    十六进制字符,等价于[a-fA-F0-9]
例:查找文件中包含"数字+句号"的行:grep '[0-9]\.' 文件名  或者 grep '[[:digit:]]\.' 文件名

四、重复


*        一个单字符后紧跟*,匹配0个或多个此单字符
?         一个单字符后紧跟?,匹配0个或1个此单字符
+         一个单字符后紧跟+,匹配1个或多个此单字符
{x,y}        表示前导表达式至少出现x次,但不超过y次
{x,}        表示前导表达式出现x次或更多次
{x}        表示前导表达式只出现x次
例:[[:alpha:]]\{2,4\}    表示可以匹配任意2个、3个或4个字母组成的字符串

五、子表达式


与算术运算中使用小括号类似,在正则表达式中也可以使用小括号将字母、数字、元字符等进行组合后,再与
其他字母、数字、元字符或其他组合联合使用,组成更长的表达式
例:([wx])([yz])    可以匹配"wz"、"wy"、"xy"或"xz"
    (very) * good    可以匹配0个或多个"very"再加上"good"的字符串

转载于:https://www.cnblogs.com/fotgod/p/7839695.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值