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

1,位置相关的 patten:

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

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

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

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

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

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

  \B:匹配非单词边界,与 \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 表示任意单个非数字字符
  \t 表示匹配单个横向制表符(相当于一个tab键)
  \s 表示匹配单个空白字符,包括"空格","tab制表符"等
  \S 表示匹配单个非空白字符  

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

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

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

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

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

5,转义符:

  \. : 表示 .

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

$ grep 'a\\' regex 

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

Ubuntu---regex的更多相关文章

  1. ubuntu 安装 regex模块时 fatal error: Python.h: No such file or directory

    原因是 python-dev包没有安装 根据Py2还是py3 sudo apt-get install python-dev 或者 sudo apt-get install python3-dev 安 ...

  2. lamp环境搭建(ubuntu)

    系统:Ubuntu14.04 方法一.最简单的在线安装 (参考网址:http://os.51cto.com/art/201307/405333.htm) 具体过程: [1]打开终端,执行命令 # su ...

  3. A replacement solution to using Google Drive in Ubuntu

    Grive2 Get dependencies You need to get the dependency libraries along with their development (-dev ...

  4. ubuntu 14.04 更新 gcc/g++ 4.9.2

    ubuntu 14.04 更新 gcc/g++ 4.9.2 最近看到c++11非常的好用,尤其是自带了regex,于是稍微学了一下c++11的新特性.可是我在编译一个regex程序是却发现稍微复杂一点 ...

  5. ubuntu下nagios配置

    参考文献: http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html http://my.oschina.net/duangr/blo ...

  6. UBUNTU 札记(53条经验)

    adobe_pdf 菜单栏 /etc/profile 是一个global config file,会影响系统全局用户,如果你只想对single user生效的话,可以修改vi ~/.bash_prof ...

  7. 沉淀,再出发——在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享

    在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享 一.工作准备 首先,明确工作的重心,在Ubuntu Kylin15.04中配置Hadoop集群,这里我是用的双系统中的 ...

  8. Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at xxxx/usr/bin/automake line 3939.

    /********************************************************************** * Unescaped left brace in re ...

  9. 1. Ubuntu下MongoDB的安装和使用

    一.MongoDB介绍 MongoDB 是一个是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似jso ...

  10. ubuntu下安装程序的五种方法

    在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 使用a ...

随机推荐

  1. keepalived+nginx实现niginx高可用,宕机自动重启

    nginx作为http服务器,在集群中 用于接受客户单发送过来的请求,并且根据配置的策略将请求 转发给具体的哪台服务器 如果在nginx服务器使用轮询策略处理客户端的请求,出现了tomcat 宕机的情 ...

  2. HP880G3 安装RHEL6.5

    ###关于读不到网卡驱动的问题 HP 880G3 在安装系统的时候会提示acpi错误 需要按F9  选择 lency开头走U盘安装系统  进入安装界面按tab 输入 acpi=off 这样就可以安装了 ...

  3. 页面中dropDownListt的二级关联

    当下拉框选项不多,而且可以写死的情况下,用js在页面写可能更方便. 我的html代码如下,两个关联是下拉框:配件类型.子类型. <div class="col-md-3 col-sm- ...

  4. webpy学(ban)习(砖)记录

    参考链接:http://blog.csdn.net/caleng/article/details/5712850 参考代码:http://files.cnblogs.com/files/tacyeh/ ...

  5. Tomcat 控制台出现乱码

    本地在启动tomcat时,控制台启动显示乱码 这是因为windows默认编码集为GBK,用startup.bat启动tomcat时,它会读取catalina.bat的代码并打开一个新窗口运行,打开的c ...

  6. 稀疏矩阵 part 2

    ▶ 各种稀疏矩阵数据结构之间的转化 ● MAT ←→ CSR CSR * MATToCSR(const MAT *in) // MAT 转 CSR { checkNULL(in); CSR * out ...

  7. python列表中的pop函数

    再python的列表中,有许多的内置方法,而在这里我主要向大家介绍一下pop函数. pop函数主要是用于删除列表中的数据.而其删除值时会返回删除的值.如果没有参数传入时, 则会默认认为删除列表的最后一 ...

  8. SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)

    1.概念:Eureka 服务发现框架 2.具体内容 对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在 ZooKeeper 组件,这个组件里面已经明确的描述了一个服务的注册以及发现操 ...

  9. tensorflow 如何读取npy文件里的参数

    import numpy as npc = np.load( "vgg16.npy" )   #npy的文件名x = c.item()     #此时,x的type是一个字典nam ...

  10. vue cli 3

    介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global 快 ...