2.2 字符类(1)

  在正则表达式中,元字符通常一次只能匹配一个位置或字符集合中的一个字符。通常情况下,如果要匹配数字、字母、空白等字符时,可以直接使用与这些集合相对应的元字符。然而,如果要匹配的字符集合(如集合[0,1,2,3,4,5])没有与之相对应的元字符时,则需要自定义匹配的字符集合。此时,可以使用字符类解决这个一个问题。字符类是一个字符集合,如果该字符集合中的任何一个字符被匹配,则它就会找到该匹配项。

  字符类是正则表达式中的“迷你”语言,可以在方括号“[]”中定义。最简单的字符类是方括号“[]”和一个字母表表构成,如元音字符类[aeiou]。以下正则表达式匹配数字0123456中的任何一个。

[0123456]                                                                   (20)

  以下正则表达式可以匹配任何数字(即0123456789)。

[0123456789]                                                                       (21)

  以下正则表达式匹配HTML标记中的“<H1>”、“<H2>”、“<H3>”、“<H4>”、“<H5>”或“<H6>”。

<H[123456]>                                                              (22)

  以下正则表达式匹配字符串“Jack”或者“jack”。

[Jj]ack                                                                       (23)

  然而,正则表达式[0123456789]的书写非常不方便。因此,正则表达式引入了连接符“-”定义字符的范围。以下正则表达式等价于正则表达式[0123456789]

[0-9]                                                                        (24)

  以下正则表达式可以匹配任何小写字母。

[a-z]                                                                         (25)

  以下正则表达式可以匹配任何大写字母。

[A-Z]                                                                                (26)

注意:当且仅当在字符类中的连接符“-”不是第一个字符时,它才具有特殊的含义:它可以指定字符类的最大边界和最小边界之间的任何字符。它的具体含义由具体的字符类决定。因此,字符类的最大边界和最小边界,以及字符在ASCIIUnicode表中出现的顺序共同确定了连接符“-”指定的字符的范围。

如果要在字符类中包括连接符“-”,则必须将它作为第一个字符。如正则表达式[-a]匹配字符“-”或者“a”。

  在字符类中,若字符“^”是字符类的第一个字符,则表示否定该字符类,即匹配除了该字符类之外的任意字符。以下正则表达式可以匹配任何非元音字符。

[^aAeEiIoOuU]                                                                       (27)

  以下正则表达式可以匹配除连接符“-”之外的任何字符。

[^-]                                                                          (28)

  以下正则表达式匹配字符a之后不是字符串b的字符串。

a[^b]                                                                      (29)

  使用工具Regex Tester测试正则表达式(29),结果如图所示。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值