Ubuntu---regex
摘要:今天我们学习正则表达式(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
Ubuntu---regex的更多相关文章
- 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 安 ...
- lamp环境搭建(ubuntu)
系统:Ubuntu14.04 方法一.最简单的在线安装 (参考网址:http://os.51cto.com/art/201307/405333.htm) 具体过程: [1]打开终端,执行命令 # su ...
- A replacement solution to using Google Drive in Ubuntu
Grive2 Get dependencies You need to get the dependency libraries along with their development (-dev ...
- ubuntu 14.04 更新 gcc/g++ 4.9.2
ubuntu 14.04 更新 gcc/g++ 4.9.2 最近看到c++11非常的好用,尤其是自带了regex,于是稍微学了一下c++11的新特性.可是我在编译一个regex程序是却发现稍微复杂一点 ...
- ubuntu下nagios配置
参考文献: http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html http://my.oschina.net/duangr/blo ...
- UBUNTU 札记(53条经验)
adobe_pdf 菜单栏 /etc/profile 是一个global config file,会影响系统全局用户,如果你只想对single user生效的话,可以修改vi ~/.bash_prof ...
- 沉淀,再出发——在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享
在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享 一.工作准备 首先,明确工作的重心,在Ubuntu Kylin15.04中配置Hadoop集群,这里我是用的双系统中的 ...
- 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 ...
- 1. Ubuntu下MongoDB的安装和使用
一.MongoDB介绍 MongoDB 是一个是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似jso ...
- ubuntu下安装程序的五种方法
在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 使用a ...
随机推荐
- Windows7环境下Excel2010中图片超链接默认打开程序修改
在Windows7的环境下,打开Excel2010超链接图片,都是默认用IE打开.搜索了所有的中文网络,没有找到解决方案,且发现受此困扰的人不少.后来用纯英文搜索,终于找到解决方案并尝试成功. 1,操 ...
- java8与函数编程资料
Functional programming Java 8 idioms Java SE 8's new Streams API Spring 技术布道师 Josh Long 来华:用 Show 代码 ...
- python之路——22
学习内容 1.初识面向对象 类:抽象的,模子 对象:具体的,根据类规范 代码精简,修改方便,属性规范2.对象 查看属性 调用方法 __dict__,增删改查,通过字典语法进行3.类名 1.实例化 2. ...
- IDEA 运行spring boot出现端口占用的问题
Description: The Tomcat connector configured to listen on port 8080 failed to start. The port may al ...
- BAT开发中,ChromeDriver版本兼容性检查
打开解决方案的Nuget包管理器,选择合适的版本,安装即可.版本的兼容性检查,见上一篇blog(初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性 https://www.cnb ...
- Python Excel 多sheet 多条数据 自定义写入
pip install xlwt python excel 数据写入操作,处理网站数据导出以及不是太多数据的爬虫存储, 用处蛮多的轮子. (150+++++++++++++++++++++++++++ ...
- SQL server 2008(Linux安装)
今天应公司的要求,需要在阿里云上安装sql server 在本地使用,由于自己原来没有涉及过这样的安装所以走了很多的弯路.现在将我的安装过程与大家分享,希望能够帮到想要学习这个方面的人.以下是我用Ce ...
- mysql 多行(GROUP_CONCAT)和多列(CONCAT)的合并函数
1,多行合并:把查询的一行或者多行进行合并. SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id ...
- !!常用HTML代码
META: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> “IE=e ...
- JVM运行、类加载的全过程
类加载机制:JVM把CLASS文件加载到内存,并对数据进行校验.解析和初始化,最终形成JVM可以直接使用的Java文件. 加载:把class文件字节码加载到内存中,并且将这些静态数据转换成方法区中的运 ...