Linux正則表達式-反复出现的字符
星号(*)元字符表示它前面的正則表達式能够出现零次或多次。也就是说,假设它改动了单个字符。那么该字符能够在那里也能够不在那里,而且假设它在那里,那可能会不止出现一个。能够使用星号元字符匹配出如今引號中的单词。
□"*hypertext"*□
无论单词"hypertext"是否出如今引號中都会被匹配。
并且,假设由星号修饰的字符确实存在。那么有可能出现多次。
比如,我们来看一系列数字:
1
5
10
50
100
500
1000
5000
正則表達式[15]0*将匹配全部的行,并且则表达式[15]00*匹配除前两行以外的全部的行。
第一个0是字面值,可是第二个由星号修饰,意味着它可能出现也可能不出现。
经常使用类似的方法匹配一个或多个(而不是0个或多个)空格,能够使用以下的表达式来完毕:
□□*
当星号元字符前面有句点元字符时,匹配随意数目的字符。
这可用于标识两个固定的字符串之间的字符的跨度。假设想要匹配引號中的随意字符串,能够指定:
".*"
它匹配该行上的第一个引號和最后一个引號之间的全部字符以及引號。使用".*"进行匹配的范围总是最大的。
眼下它似乎并不重要,可是一旦学习替换被匹配的字符串时这就非常重要了。
作为还有一个样例,一对尖括号标记语言中用来包围格式化指令的普通符号,标记语言如HTML。通过指定以下的表达式能够打印带有标记的全部的行:
当星号用于修饰字符类时,则能够匹配类中的随意数目的字符。
比如以下5行的演示样例文件:
I can do it
I cannot do it
I can not do it
I can' t do it
I cant do it
假设我们想要匹配以上语句中的否定语句,但不匹配肯定语句,能够使用以下的正則表達式:
can[ no' ]*t
星号使得类中的随意字符以随意顺序匹配,而且匹配随意多次的出现。例如以下所看到的:
I cannot do it
I can not do it
I can' t do it
I cant do it
有4个成功和1个失败(肯定语句)。注意假设正則表達式试图匹配字符串"can"和"t"之间的随意个字符,例如以下例所看到的:
can.*t
它将匹配全部的行。
技术术语"closure (闭合)"有匹配"零次或多次"的能力。egrep和awk使用的元字符扩展集提供了几个很实用的closure 的变化。加号(+)匹配前面的正則表達式的一次或多次出现。前面匹配一个或多个空格的演示样例能够简化为:
□+
元字符加号能够被觉得是"至少一个"的前导字符。其实,它和很多人使用的"*"号相相应。
问号(?)匹配零次或一次出现。比如,在前面的演示样例中,我们使用正則表達式匹配"80286" 、"80386" 和" 80486" 。
假设我们还想匹配字符串"8086" ,能够用egrep 或awk编写正則表達式:
80[234]?
86
它匹配"80"后面跟有一个2 ,一个3 ,一个4,或者没有字符,然后跟字符串"86"。不要混淆表达式中的?和shell中的?
通配符。Shell 中的?表示单个字符。等效于正則表達式中的"."
參考资料:http://www.linuxawk.com/communication/436.html
Linux正則表達式-反复出现的字符的更多相关文章
- Linux正則表達式-定位元字符
有两个元字符用于指定字符串出如今行首或行末.脱字符(^)是指示開始的单字符正則表達式.美元符号($)是指示行结尾的单字符的正則表達式.这些通常称为"定位符",由于它们将匹配限定在特 ...
- linux系统之shell编程-正則表達式
shell编程正則表達式: 1:元字符 [ ] . * ? + ( ) | { } ^ $ 2 : [a-z0-9] 表示匹配随意数字和字母的一个 3 : [^a-z] ...
- Python正則表達式:怎样使用正則表達式
正則表達式(简称RE)本质上能够看作一个小的.高度专业化的编程语言,在Python中能够通过re模块使用它.使用正則表達式,你须要为想要匹配的字符串集合指定一套规则,字符串集合能够包括英文句子.e-m ...
- javascript正則表達式
定义一个正則表達式 能够用字面量 var regex = /xyz/; var regex = /xyz/i; 也能够用构造函数 var regex = new RegExp('xyz'); var ...
- Java正則表達式入门
众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...
- JAVA中正則表達式总结
昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...
- 经常使用的正則表達式归纳—JavaScript正則表達式
来源:http://www.ido321.com/856.html 1.正则优先级 首先看一下正則表達式的优先级,下表从最高优先级到最低优先级列出各种正則表達式操作符的优先权顺序: 2.经常使用的正則 ...
- Java之正則表達式【使用语法】
认为好就顶一个!! ! ! 3.正則表達式 用一些特殊的有意义的字符组成的字符串(死记) 原子:正則表達式的最基本组成单位 正則表達式特殊意义的字符: . * + ?不能单独表示它们,假设非 ...
- python之路-------字符串与正則表達式
1.1.#####去掉字符串中的转义符string.strip() print "hello\tworld\n" >>> word="\thello w ...
随机推荐
- 用CSS3写的钟表
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 22个CSS黑魔法
原链接:http://www.ido321.com/1665.html Hey there! Today we are going to talk about some useful tricks i ...
- 纯CSS实现带小角的对话框式下拉菜单
最近公司首页样式重写,头部下拉菜单改为了带小角的对话框式下拉菜单: 很多人可能会用图片,事实上纯CSS就能够实现: HTML: <!DOCTYPE html> <html lang= ...
- oracle 随Linux系统启动自启动设置
本文转自http://www.jb51.net/article/19823.htm 首先,要在RHEL中设置允许ORACLE系统自动启动,因为默认情况下是设置为不允许的.操作如下: 在root账户下修 ...
- win32系统信息获取
#include <Windows.h> #include "resource.h" #include <strsafe.h> PTSTR BigNumTo ...
- C语言中对于结构的定义一般放在.h中还是.c中
单文件使用的结构体放.c文件中 本模块内部使用结构体,放模块内部头文件中 供外部使用的结构体,放模块对外头文件中.
- PHP连接Microsoft SQL Server 2005/2008
PHP自带的MSSQL扩展php_mssql.dll原来是给SQL Server 2000用的,难怪连接不上2008?! -_-!!要使用SQL Server 2005以上版本,就要用到微软为PHP提 ...
- java-web-dom4j解析XML-递归方式
<?xml version="1.0" encoding="UTF-8"?><书架> <书 出版日期="2013-10 ...
- 丰富的else语句及简洁的with语句 - 零基础入门学习Python034
丰富的else语句及简洁的with语句 让编程改变世界 Change the world by program 丰富的else语句 有鱼油可能会说,else语句还有啥好讲的?经常跟if语句进行搭配用于 ...
- Jasper_mainReport_excel html pdf 主报表中常用属性
jasper中,excel , html, pdf 一般可以使用相同的主报表和子报表.需要在主报表中添加不同格式对应的属性.导出不同格式的报表,编译器会将相应的属性应用到对应的报表格式中. 常用属性如 ...