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 ...
随机推荐
- [RxJS] Displaying Initial Data with StartWith
You often need to render out data before you stream begins from a click or another user interaction. ...
- UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
转自:http://blog.csdn.net/meegomeego/article/details/39890385 layoutSubviews总结 ios layout机制相关方法 - (CGS ...
- sql 表名为关键字
user在sql server中时一个关键字,如上面说所的,有时候我们无意中将其作为表的名称,当我们在sql语句中要使用该名称时例如:select *from user这是会提示user附近有语法错误 ...
- Python爬虫——抓取糗百段子
在别人博客里学习的 抓取糗百段子,由于糗百不断的更新,代码需要改正. 抓取网页:http://www.qiushibaike.com/hot/page/1 修改后的代码如下: # -*- coding ...
- hdu5347 MZL's chemistry(打表)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud MZL's chemistry Time Limit: 2000/1000 MS ...
- DOM 节点属性
DOM 节点属性 在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeT ...
- iOS7适配问题
iOS7适配问题 2013-09-28 08:32:37 我来说两句 作者:冻僵的企鹅 收藏 我要投稿 iOS 7发布了,适配问题来了,开发者都忙起来了. 先记一个iOS7 的 ...
- [TYVJ] P1423 GF和猫咪的玩具
GF和猫咪的玩具 描述 Description GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1---n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同.GF左手拿起金 ...
- 小SQL大作用
从DBA那问来的,备份现有数据库表: create table B select * from A ; 删除,重建数据库主键 alter table book_order drop primary k ...
- 谁在唱衰PC?说出你的理由
在平板电脑的冲击下,PC真的衰落了吗?戴尔消费产品市场副总裁Raymond Wah给出了坚定的回答:“平板电脑没有办法代替PC”. 让他有如此底气做出这一判断的取决于两方面:一方面,PC(了解PC市场 ...