zoukankan      html  css  js  c++  java
  • Ubuntu---regex

    摘要:今天我们学习正则表达式(regex),因为掌握这个是用好 grep 命令的前提条件。

    1,位置相关的 patten:

      ^:表示锚定行首,才能匹配。

      $:表示锚定行尾,才能匹配。

      ^$:表示匹配空行,这里的空行表示“回车”,而“空格”或“tab”等都不能算作此处所描述的空行。

      ^abc$:表示 abc 独占一行的时候,才会被匹配到。

      < 或 :匹配单词边界,表示锚定词首,其后面的字符必须作为单词首部出现。

      > 或 :匹配单词边界,表示锚定词尾,其后面的字符必须作为单词首部出现。

      B:匹配非单词边界,与  相反。

    2,连续次数匹配的 patten:

      *:表示前面的字符连续出现任意次,包括0次。

      .:表示任意单个字符(换行符除外)。

      .*:表示任意长度的任意字符,与通配符中的 * 意思相同。

      ?:表示匹配其前面的字符0次或1次。

      +:表示匹配其前面的字符至少1次,或者连续多次,连续次数没有上限。

      {n}:表示前面的字符连续出现n次,将会被匹配到。

      {x,y}:表示前面的字符至少连续出现x次,至多连续出现y次,都能被匹配到。

      {,n}:表示前面的字符至多连续出现n次,最少0次,都会被匹配到。

      {n,}:表示前面的字符至少连续出现n次,才会被匹配到。

    3,字符,数字,符号匹配的 patten:

      [ ] :表示匹配指定范围内的任意单个字符

      [^ ]:表示匹配指定范围外的任意单个字符

      [[:alpha:]]:表示任意大小写字母

      [[:lower:]]:表示任意小写字母

      [[:upper:]]:表示任意大写字母

      [[:digit:]]:表示 0 到 9 之间的任意单个数字(包括 0和 9)

      [[:alnum:]]:表示任意数字或字母

      [[:space:]]:表示任意空白字符,包括“空格”、“tab键”等

      [[:punct:]]:表示任意标点符号

      [0-9] 与 [[:digit:]] 等效
      [a-z] 与 [[:lower:]] 等效
      [A-Z] 与 [[:upper:]] 等效
      [a-zA-Z] 与 [[:alpha:]] 等效
      [a-zA-Z0-9] 与 [[:alnum:]] 等效

    # 简短格式并非所有正则表达式解析器都可以识别,我们可以使用 -P 选项,表示 grep 使用兼容的 perl 的正则表达式引擎

      d 表示任意单个0到9的数字
      D 表示任意单个非数字字符
       表示匹配单个横向制表符(相当于一个tab键)
      s 表示匹配单个空白字符,包括"空格","tab制表符"等
      S 表示匹配单个非空白字符  

     4,分组与后向引用相关的 patten :

      ():表示分组,我们可以将其中的内容当作一个整体,分组可以嵌套

      (ab) :表示将 ab 看作一个整体去处理

      1:表示引用整个正则表达式中第一个分组中匹配到的结果

      2:表示引用整个正则表达式中第二个分组中匹配到的结果

    5,转义符:

      . : 表示 .

      \:表示    [注意:此时正则表达式要用单引号('regex//'),不能用(“regex//”)]

    $ grep 'a\' regex 

    参考博客:http://www.zsythink.net/

    所有博文均为原著,如若转载,请注明出处!
  • 相关阅读:
    MySQL5.7初始密码查看及重置
    ps top kill
    Linux基础知识[2]【延迟及定时机制】
    大数加减运算
    字符串分隔
    打印NxN的矩阵
    交叉排序
    去除重复字符并排序
    大数求差——(华为实习招聘机试题)
    图解TCP-IP协议
  • 原文地址:https://www.cnblogs.com/zpcoding/p/10770635.html
Copyright © 2011-2022 走看看