1) . : 匹配任意单ASCII 字符,可以为字母,或为数字。
2) 举例: ..XC..匹配deXC1t、23XCdf
等,.w..w..w.匹配rwxrw-rw-
行首以^匹配字符串或字符序列
1) ^ : 允许在一行的开始匹配字符或单词。
2) 举例: ^.01 匹配0011cx4、c01sdf 等,^d
匹配drwxr-xr-x、drw-r--r--等
行尾以$匹配字符串或字符
1) $ : 在行尾匹配字符串或字符,$符号放在匹配单词后。
2) 举例: trouble$ 匹配以单词trouble
结尾的所有行
^$匹配所有空行
使用*匹配字符串中的单字符或其重复序列(与文件名置换中的"*"不一样)
1) * : 一个单字符后紧跟*,匹配0 个或多个此单字符。
2) 举例: compu*t 将匹配字符u
一次或多次,即匹配computer computing compuuute
等
1033* 可以匹配 101333 10133 1013444
等
3) 在正则表达式中使用"*",有时会产生非预期的结果。
使用\屏蔽一个特殊字符的含义
1) \ : 用来屏蔽一个元字符的特殊含义。因为有时在shell
中元字符有特殊含义。\可以使其失去应有意义。
2) 举例: 在正则表达式中匹配以*.pas 结尾的所有文件: \*\.pas$
使用[]匹配属于一个范围或集合单个字符
1) [ ] : 匹配"[
]"内的字符。可以是一个单字符,也可以是字符序列。可以使用"-"表示括号"[ ]"内字符序列范围,
如用[1-5]代替[12345]。可以用逗号","分隔括号"[]"内的字符。
2) 当"^"符号当直接靠着"[",意指否定或不匹配括号"[]"里内容
3) 举例: [0-9]匹配任意一个数字;[a-z]匹配任意一个小写字母;[0-9A-Za-z]匹配任意字母或数字;
[C,c]omputer 匹配Computer
和computer;[^a-zA-Z]匹配任一非字母型字符
使用"\{\}"匹配模式结果出现的次数
1) pattern\{n\}
: 匹配模式pattern 出现n 次的情形。
2) pattern\{n,\} : 匹配模式pattern 最少出现n 次的情形。
3) pattern\{,m\} : 匹配模式pattern 最多出现m 次的情形。
4) pattern\{n,m\} : 匹配模式pattern 出现次数在n
与m 之间的情形。
5) 举例: A\{2\}B 匹配的值为AAB
A\{2,\}B 匹配的值可以是AAB 或AAAAAB,但不能匹配AB
A\{2,4\}B 匹配的值可以是AAB、AAAB、AAAAB,但不能匹配AB 或AAAAAB 等
[0-9]\{4\}CX[0-9]\{4\} 匹配数字出现4
次后跟CX,最后是数字出现4 次的情形
6) 实际上真正的格式是 {n} {n,} {,m} {n,m},只不过对"{"和"}"应用了Esacpe 字符"\"。
经常使用的正则表达式举例
[Ss]igna[lL]
匹配单词signal、signaL、Signal、SignaL
[Ss]igna[lL]\. 同上,但加一句点
^USER$
只包含USER
的行
\.
带句点的行
^d..x..x..x
对用户、用户组及其他用户、组成员有可执行权限的目录
^[^l]
排除符号链接文件后的文件目录列表(即不是以"l"开始的行)
[yYnN]
大写或小写y
或n
^.*$
匹配行中任意字符串
^......$
包括6 个字符的行
[a-zA-Z]
任意单个字母
[a-z]*
至少一个小写字母
[^0-9\$]
非数字或美元符号
[123]
1 到3
中一个数字
\^q
以^q
开始行
^.$
仅有一个字符的行
^\.[0-9][0-9] 以一个句点和两个数字开始的行
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}
日期格式dd-mm-yyyy
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} 类IP
地址格式
nnn.nnn.nnn.nnn
.*
匹配任意多个字符
linux shell 正则表达式(BREs,EREs,PREs)差异比较
linux shell 正则表达式(BREs,EREs,PREs)差异比较 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.在很多文本编辑器或其他工具里 ...
linux shell 正则表达式(BREs,EREs,PREs)的比较
原文 : linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...
文本处理三剑客与shell正则表达式
文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...
C#正则表达式Regex常用匹配
使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 利用Regex类实现验证 示例1:注释的代码所起的作用是相同的,不过一个是静态方法,一个是 ...
JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分)
JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分) 1.匹配属性的开头 $("[attributeName^='value']"); 2.匹配属性的结尾 ...
JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫
JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...
Linux文件名匹配和输出重定向--2019-4-24
1.文件名匹配 例:rm *.bak; 删除结尾是.bak的文件 rm *4*.bak; 删除名称中有“4”的.bak文件 ls *.????; 查找结尾是“.”后有四个字母的文件 2.管道 先进 ...
C#,如何程序使用正则表达式如何使用匹配的位置的结果修改匹配到的值
程序代码使用正则表达式如何修改匹配到的值: 代码一: using System; using System.Text.RegularExpressions; public class Example ...
Delphi 正则表达式语法(7): 匹配转义字符
Delphi 正则表达式语法(7): 匹配转义字符 // ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var reg: TPerlRegEx; begin reg := TPe ...
随机推荐
SqlServer性能优化 性能调控(十)
如何做资源的调控: 1.建立资源池. 2.创建工作负荷组 create resource pool ImporPool with ( min_cpu_percent=30,max_cpu_percen ...
SqlServer性能优化 提高并发性能(八)
并发访问: 当多个线程访问同一个资源,会产生并发性问题 并发控制与处理: 乐观并发控制:一种方式是"后来的更新者获胜" 这意味着先来的用户提交的值会在没有察觉的情况下丢失. 为 ...
angular(3)服务 --注入---自定义模块--单页面应用
ng内部,一旦发生值改变操作,如$scope.m=x,就会自动轮询$digest队列,触发指定的$watch,调用其回调函数,然后修改dom树. 干货:https://github.com/xufei ...
一个有意思的js实例,你会吗??[原创]
首先,看看下面一个js例子,你觉得会输出什么呢? function fn(a){ a(); function a(){ console.log(2); } var a = function(){ co ...
ZOJ 3903 Ant(公式推导)
这个公式推导过程是看的这位大牛的http://blog.csdn.net/bigbigship/article/details/49123643 扩展欧几里德求模的逆元方法: #include < ...
最近客户的apache+php环境运行很慢解决
描述:[Wed Jul 24 15:49:11 2013] [warn] (OS 64)指定的网络名不再可用. : winnt_accept: Asynchronous AcceptEx faile ...
三.RabbitMQ之异步消息队列(Work Queue)
上一篇文章简要介绍了RabbitMQ的基本知识点,并且写了一个简单的发送和接收消息的demo.这一篇文章继续介绍关于Work Queue(工作队列)方面的知识点,用于实现多个工作进程的分发式任务. 一 ...
css实现响应式布局的相关内容
所以我就在做自适应的时候查了一些资料 首先我发现一个问题:有响应式布局和自适应布局两种布局效果 简单来说,响应式布局就是不同的设备无论大小 布局都自动调整大小 页面布局都一样 可以保证无论什么设备 用 ...
Windows10安装ubuntu &; caffe GPU版
1.Ubuntu https://www.cnblogs.com/EasonJim/p/7112413.html https://blog.csdn.net/jesse_mx/article/deta ...
epoll源码分析
epoll源码分析 最近在使用libev过程中遇到一个场景:一个fd从一个ev_loop迁移到另一个ev_loop,会出现这个fd同时存在两个epoll的瞬间.不禁要问了,一个fd同时被两个epoll ...