• 我的第一个正则表达式


    虽然闻名已久,但是,终究是机缘未到,每次都是浅尝辄止,甚至没自己写过一行正则表达式。今天终于写了自己第一个正则表达式,纪念一下:

    s/udisk/[1-9]*

    上面这以pattern主要是为了,在某一长串中,找到字符串 " /udkisk/xx",其中xx表示一串数字,对这串数的长度没有要求。

    对上面的各个段做一下解释:

    1)  "s",表示一个空白字符,匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ f v]。通常作为字符串的开始符。这样的字符,在正则表达式中叫做MetaCharacter,中文翻译做元字符。表示“一个字符”的元字符还有:

      - “”,匹配英文中一个单词的开始或结尾,可以是空格、标点符号、换行。但是,事实上,它只是匹配了一个位置,只是用来发现单词的开始或结尾。

      - “.”,可以匹配换行符外的任意字符。

      - “d”,匹配一个数字。等价于用集合表示的[0-9]。

      - “w”,匹配一个字母,或数字,或下划线,或汉字。

      - “范围[1-9]”或“集合[fsefsfd]”,事实上这两个对应的英文单词都可以是set,这里表示匹配范围内,或者集合内的某一字符。

    2)所以,用上面的元字符把我的第一个正则表达式拆开,就是“s”+"/udisk/"+"[1-9]*”,所以我们要匹配的串是 “ 空格”+“/udisk/”+“数字”+“数字”+。。。+“数字”。这里的 “*” 是指前一个元字符会出现0次或无限多次。

    3)上面的 “*” 叫做限定符,即限定出现次数的。正则表达式中的限定符包括:

      - “*”,出现0次或者无限多次。

      - “+”,出现1次或者无限多次。最少1次。

      - “?”,出现0次或1次。

      - “{n}”,出现n次。

      - “{n,}”, 出现n次或更多次。

      - “{n,m}”,最少出现n次,最多出现m次。

    4)我们也可以把一串元字符和限定符(或其他符号)组成的表达式用括号括起来,然后把这一段表达式当做一个元字符对待,这段叫做一个组。比如,(w+.){2}w+ ,表示 “ xxx.xxx.xxx ” ,其中xxx为任意数量个字母。

    这只是正则表达式的一部分入门知识,所以。。。还要加油。另外,bash中使用正则表达式的三把利器,也要尝试掌握:grep,sed,awk

  • 相关阅读:
    BestCoder Round #84
    codeforces#689BMike and Shortcuts
    POJ2985 并查集+线段树 求第k大的数
    Trie树模板 POJ1056
    新建zabbix数据库
    python输出菱形
    wmi获取计算机信息
    python测试IP地址是否ping通
    手机安装python环境
    Centos 8 安装zabbix 爬坑
  • 原文地址:https://www.cnblogs.com/pied/p/4119193.html
Copyright © 2020-2023  润新知