正则表达式

正则表达式 知识量:10 - 22 - 55

3.1 匹配其中之一><

匹配多个字符中的某一个- 3.1.1 -

如果已经划定了一个匹配的范围(一个集合),只要属于其中某一个字符就可以匹配,这时可以使用元字符“[”和“]”来定义这个范围(也就是一个集合)。

文本:

football
basketball
tennis
baseball
volleyball
golf
handball

正则表达式:

...[ted]ball

结果:

MatchPositionLength
football08
sketball118
baseball278
handball528
正则表达式中,“...”表示匹配三个任意字符,后面“[ted]”表示匹配t、e、d中的某一个,紧接着匹配ball。

字符集合区间- 3.1.2 -

假设如果要匹配的集合是这样的:[0123456789],那么存在一种简写方式,即:[0-9]。[0-9]是一个字符集合区间,表示从0到9的十个数字。

字符区间并不限于数字,字母也可以,例如:

  • A-Z:匹配从A到Z的所有大写字母。

  • a-z:匹配从a到z的所有小写字母。

  • A-G:匹配从A到G的所有大写字母。

  • A-Za-z0-9:匹配任何字母(无论大小写)或数字。

文本:

football0
basketball9
tennis5
baseball8
volleyball6
golf4
handball3

正则表达式:

[a-z]ball[0-6]

结果:

MatchPositionLength
tball036
yball6456
dball3616

需要特别注意的是:

  • 定义字符区间时,一定要确保首字符小于尾字符。

  • -(连字符)是一个特殊的元字符,作为元字符只能用在[]之内。在其他地方它只是个普通的“-”字符,匹配本身时不需要进行转义。