正则表达式的应用技巧

30 篇文章 1 订阅

正则表达式

目的:

1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”)

2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式的特点是:

1. 灵活性、逻辑性和功能性非常强;

2. 可以迅速地用极简单的方式达到字符串的复杂控制。

3. 对于刚接触的人来说,比较晦涩难懂。

  •     正则表达式组成

  •     元字符

        含义:代表普通字符或特殊字符
         \w:匹配任何字类字符(数字、字母、下划线)
        \W: 匹配任何非字类字符(数字、字母、下划线)
        \b:代表单词分隔

  •     单个字符

        特定字符
            某个具体字符(grep '1' passwd)
        范围内字符: [ ]
            数字字符:[0-9],[259]
            小写字符:[a-z]
            大写字符:[A-Z]
        任意字符
            .  表示任意字符
        反向字符:^
            取反:[^0-9] , [^0] (‘^’一定要放倒中括号里边才行)

  •     重复字符

        *  :0次或者多次匹配前面的字符
        + :1次或者多次匹配前面的字符(+不能直接用,需要加\来转义)
        ?:0次或1次匹配前面的字符(?不能直接用,需要加\来转义)
        重复特定次数:  {n,m}  代表重复n-m次
            *  :{0,1}
            + :{1,}
            ?: {0,1}
        任意字符串的表示: .*
            ^r.*: 表示以r开头的任意字符串。
            n.*x:表示n和x之间有任意个字符
            n...x:表示n和x之间有3个任意字符
        逻辑或: | (需要转义,前边加\)
            过滤掉#开头的行和空行
            grep -v '^$\|^#' nginx.conf(-v是取反的意思)
        常用的正则匹配
            1、 匹配4-10位的QQ号码
            grep '^[0-9]\{4,10\}$' a.txt
            2、 匹配15或者18位×××号(支持带X的)
            分析,×××开始位不能为0,结尾包括x,中间部分是13位或16数字重复。(注意转义符号)grep '^[1-9]\([0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$' a.txt
            3、 匹配密码(由数字、字母和下划线组成)
            grep '^\w\+$' a.txt

  •     边界字符

        首字符^
        尾字符$
        ^$:表示空行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值