Linux正则表达式
正则表达示的组成:
- 一般字符:没有特殊意义的字符
- 特殊字符(meta字符):元字符,有在正则表达式中有特殊意义
正则表达式中常见的meta字符
- POSIX BRE与ERE中都有的meta字符
- \ 通常用于打开或关闭后续字符的特殊含义,如\(…\)与\{…\} ;
- . 匹配任意单个字符(除NULL);
- * 匹配其前的任何数目或没有的单个字符,例:.表示任何一个字符,则.*匹配任一字符的任一长度;
- ^ 匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊含义,ERE中在任何位置都有特殊含义;
- $ 匹配前面的正则表达式,在字符串或者结尾处。BRE中仅在正则表达式的结尾处有特殊含义,ERE中在任何位置都有特殊含义;
- [] 匹配方括号内的任一字符,其中可用连字符(-)指连续字符的范围;^符号若出现在方括号的第一个位置,则表示匹配不在列表的任一字符;
- POSIX BRE中才有的字符
- \{n,m\}:区间表达式,匹配在它前面的单个字符重现的次数区别。\{n\}指重现n次;\{n,m\}指重现n至m次;
- \(\):保留空间,可以将最多9个独立的子模式存储在单个模式中。如\(ab\).*\1:指匹配ab组合的两次重现,中间可存在任意数目的字符。
- \n:重复在\(\)括号内第n个子模式至此点的模式;
- POSIX ERE中才有的字符
- {n,m}与BRE中的相同
- + 匹配前面正则表达式的一个或多个扩展
- ? 匹配前面正则表达式的零个或一个扩展
- | 匹配|符号前或后的正则表达式
- () 匹配()括起来的正则表达式群
- 字符集
标识字符集有以下几种:
|
[::alnum] : 数字字符 |
[:digit:] : 数字字符 |
[:punct:] : 标点符号字符 |
|
[:alpha:] : 字母字符 |
[:graph:] : 非空格字符 |
[:space:] : 空格字符 |
|
[:blank:] : 空格与定位字符 |
[:lower:] : 小写字母字符 |
[:upper:] : 大写字母字符 |
|
[:cntrl:] : 控制字符 |
[:print:] : 可显示的字符 |
[:xdigit:] : |
|
[::alnum] : 数字字符 |
[:digit:] : 数字字符 |
[:punct:] : 标点符号字符 |
案例一
原文件url.txt中的内容如下:
www.baidu.com
http://www.baidu.com
https://www.baidu.com
http://wwwbaiducom
baidu.com
baidu
要求:匹配以http或者https开头,并且其后为:并且含有.的串
BRE匹配:
Grep '^https\{0,1\}:.*\..*' url.txt
ERE匹配:
grep –E '^https?:.*\..*' url.txt
案例二
Email匹配
原文件email.txt中的内容如下:
aaa@
@@baidu.com
要求:匹配以字母或数字开头或下划线开头,其后跟一个@之后有多个字母数字或者下划线,其中有一个.号
Grep '^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*\..*' email.txt
注:本文引用于http://www.jb51.net/article/42989.htm
Linux正则表达式的更多相关文章
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- 关于清晰讲解linux正则表达式的博文分享
http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html linux shell 正则表达式(BREs,EREs,PREs)差异比 ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- 【Linux】linux正则表达式及通配符
正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.拥有强大的字符搜索功能.也非常方便的搜索过滤出我们想要的内容. linux正则表达式分为基本正则表达式(Basic Regexp)和扩展 ...
- Linux 正则表达式_010
Linux 正则表达式 标注:本教程只针对linux运维的三剑客命令awk,sed,grep正则表达式 什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法通过定义的这 ...
- linux正则表达式(基础正则表达式+扩展正则表达式)
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...
- linux 正则表达式和通配符
linux 正则表达式和通配符 通配符用于查找文件 包含三种: * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...
- 七 、linux正则表达式
为处理大量的字符串而定义的一套规则和方法 1)linux正则表达式以行为单位处理 2)alians grep = “grep –color=auto”,让匹配的内容显示颜色 3)注意字符集,expor ...
- (转)linux正则表达式详解
linux正则表达式详解 http://blog.csdn.net/wuliowen/article/details/64131815 1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法 ...
- linux正则表达式企业级深度实践案例1
linux正则表达式结合三剑客企业级实践: 1.取系统ip [root@redhat~]# ifconfig eth0 解答: 替换命令: sed 's#支持正则位置##g' file 先取第 ...
随机推荐
- 他(he)(钟神)
他[问题描述]一张长度为N的纸带,我们可以从左至右编号为0 −N(纸带最左端标号为0) .现在有M次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带的长度是多少.[输入格式]第一行两个数字N, ...
- 【原】小玩node+express爬虫-2
上周写了一个node+experss的爬虫小入门.今天继续来学习一下,写一个爬虫2.0版本. 这次我们不再爬博客园了,咋玩点新的,爬爬电影天堂.因为每个周末都会在电影天堂下载一部电影来看看. talk ...
- vim as python IDE
参照Martin Brochhaus大神的视频,今天我也尝试了一下配置vim python IDE以后使用过程中只需要https://github.com/wyj1239630590/vim-as-a ...
- 如何修改SharePoint2013服务器场帐号密码
服务器远程登录帐号密码修改密码后,如何修改sharepoint服务器场管理员账户密码,今天登录了一下N久以前的搭建sharepoint2013服务器场的一台服务器器,登录进去以后直接提示帐号密码过期需 ...
- thinkphp访问不存在的模块或者方法跳转到404页面
使用的thinkphp 版本是3.2.0, 在config.php中配置 404地址,即可: 'TMPL_EXCEPTION_FILE' => './Application/Home/View/ ...
- thinkphp 3.2.3 动态修改conf配置文件
thinkphp 3.2.3 的C()方法能修改配置文件,但是是动态修改的,没有真正的更改文件. 我查了网上网友分享的方法,都不怎么合适,我就自己摸索写了一个,配置写到text.php中,我的目录如下 ...
- bootstrap学习笔记--bootstrap布局方式
Bootstrap 3 是移动设备优先的,在这个意义上,Bootstrap 代码从小屏幕设备(比如移动设备.平板电脑)开始,然后扩展到大屏幕设备(比如笔记本电脑.台式电脑)上的组件和网格. 移动设备优 ...
- jq使用技巧
1. 如何创建嵌套的过滤器 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为 ...
- Spring MVC学习笔记——引入静态文件
1.在user-servlet.xml中加入以下代码,才能使得对静态文件的请求不被Controller捕获,而映射到一个固定的地址 <!-- 将静态文件指定到某个特殊的文件夹中统一处理 --&g ...
- Android中Context的理解及使用(一)——Context的作用
Context的作用:用来访问全局信息的接口,通过Context进行资源的访问. 1.Context获取字符串资源: public class MainActivity extends AppComp ...