linux系统点正则表达式,字符的范围 - Linux正则表达式_Linux编程_Linux公社-Linux系统门户网站...

连字符(-)用于指定一个字符范围。例如,所有大写英文字符的范围可以指定为:

[A-Z]

一个数字的范围可以指定为:

[0-9]

该字符类有助于解决匹配文章引用的问题。请看下面的正则表达式:

[cC]hapter [1-9]

它匹配字符串"chapter" 或"Chapter" 且其后面跟有空格,然后是从1到9的任意单个数字,下面的每一行都匹配这种模式:

you will find the information in chapter 9

and chapter 12.

Chapter 4 contains a summary at the end.

根据这个任务,本例中的第二行可以看做是假警报,可以在"[1-9]"之后添加空格来避免匹配两个数字。也可以指定不在那个位置匹配的字符类,正如我们在下一节要看到的那样。可以同时指定多重范围,也可以混合使用:

[0-9a-z?,.;:'"]

这个表达式将匹配“任意单个字符,可以是数字、小写字母、问号、逗号、句

点、分号、冒号、单引号和引号”。记住每个字符类都匹配单个字符。如果指

定多个类,可以描述多个连续的字符,例如:

[a-zA-Z][.?!]

这个表达式匹配“任意后面跟有句点、问号或感叹号的小写或大写字母”。

如果闭括号(])是作为类中的第一个字符出现(或者是脱字符后的第一个字符,参见下一节) ,那么它就被解释为类的一个成员。如果连字符在一个类中是第一个或最后一个字符,则失去其特殊含义。因此,为了匹配算术操作符,我们在下面的示例中将连字符(-)放在第一位:

[-+*/]

在awk中,还可以使用反斜杠转义在范围中出现的连字符或闭方括号,但是语法更杂乱了。

尝试用正则表达式匹配日期是一个有趣的问题。下面是两种可能的格式:

MM-DD-YY

MM/DD/YY

下面的正则表达式指示每个字符位置可能的数值范围:

[0-1][0-9][-/][0-3][0-9][-/][0-9][0-9]

"-"或"/"都可能是定界符。在第一个位置放置连字符确保它在字符类中解释为字面意义,即作为一个连字符,而不是指示一个范围。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值