正则表达式

1、正则表达式应用环境
重要的文本处理工具:vim、sed、awk、grep
各种语言和应用程序:mysql、oracle、php、python、apache、nginx
2、什么是正则表达式
正则表达式(Regular Expression,通常简称为regex或RE)是一种字符表达方式,可以用它来查找匹配特定准则的文本。许多编程语言中都有用到正则表达式,常用它来实现一些复杂的匹配。这里简单介绍一下shel中常用到的一些正则表达式
正则表达式是对字符串进行操作的一种逻辑公式,即用事先定义好的的一些特定字符以及这些特定字符的组合,组成一个有一定规则的字符串(Regular Expression),使用这个有一定规则的字符串来表达对字符串的一种过滤逻辑。正则表达式被广泛应用于Linux和许多其他编程语言中,而且不论在哪里,其基本原理都是一样的
正则表达式是由两个基本组成部分所建立:一般字符与特殊字符。一般字符是指没有任何特殊意义的字符;特殊字符,常称为元字符(metacharacter),或meta字符,正则表达式将匹配被查找行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。在某些情况下,特殊字符也可被视为一般字符(使用转义符\进行转义)
3、正则表达式元字符和Shell 通配符
shell元字符(也称为通配符)由shell来解析,如m-rf.pdf,元字符Shell将其解析为任意多个字符
正则表达式元字符由各种执行模式匹配操作的程序来解析,比如vi、grep、sed、awk、python
4、正则表达式元字符
字符 含义
. 匹配任意单个字符(除字符串结束符NUL)
^ 匹配行首,如^abc,匹配abc开头的字符串
$ 匹配行尾,如abc$,匹配以abc结尾的字符串

  • 匹配0个或者任意多的单个字符串,前置字符可以是正则表达式
  • 匹配前面正则表达式的1个或多个实例
    ? 匹配前面正则表达式的0个或1个实例
    […] 方括号表达式,匹配方括是内的任一字符,常配合-符使用,表示匹配一个连续的范围。^字符作为方括号内的第一个字符表示匹配不在方括号内的任意字符
  • 连字符,在方括号表达式中使用,表示连续字符的范围(范围会因locale而有所不同,因此不具可移植性)
    5、正则表达式应用举例
    .*所有字符
    []非字符组内的字符开头的行
    [a-z]小写字母
    [A-Z]大写字母
    [a-Z]小写和大写字母
    [0-9]数字
    < 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词

单词尾
5.1、grep使用的元字符
注:grep也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
grep:使用基本元字符 ^,KaTeX parse error: Undefined control sequence: \w at position 64: …集?,+,{},|,() \̲w̲ ̲ ̲ ̲所有字母与数字,称为字符[a-…匹配行尾
grep ^t /etc/passwd
grep ^t.*h$ /etc/passwd
.*结合在一起表示匹配0个或多个任意字符,与^和$结合起来使用的话就可以匹配一个指定开头和结尾的字符串了
6)使用方括号表达式匹配括号内的任一字符
grep [Nu] /etc/passwd
grep [a-z]c /etc/passwd
结合-字符使用,可以表示匹配一个范围内的任一字符,如[0-9]表示匹配0-9中的任意一个数字、[a-z]表示匹配一个小写字母、[A-Z]表示匹配一个大写字母:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值