正则表达式入门(1)——基础:简单的匹配一组字符

强迫症严重!正则表达式必须学起来!这里只记录一些快速语法,细节问题不涉及,先凑合用着,以后再深究。

1.匹配纯文本

没什么好说的,就是直接匹配文本。

2.匹配任意字符

“.” 字符(英文的句号):匹配任意单个字符。

例如

c.t

可以匹配cat、cot、cmt等等。

b..s

可以匹配bars、bits、boss等等。

注意,点字符可以匹配除了“换行符”以外的其它任意字符。换行符也就是\r\n这种东西。

3.大小写问题

正则表达式区分大小写,所以需要注意一下。

4.使用\(反斜杠)转义字符

如果想匹配文件名,里面的“.”就需要用转义字符“.”。

...\.txt

这会找出三个字符加“.txt”,例如:

bar.txt

abc.txt

等等。如果一个文件名是longnames.txt,那么会匹配mes.txt

有“\”(反斜杠)出现一定是转义字符,如果要匹配反斜杠本身,就用两个反斜杠“\”表示。

5.匹配一组字符(字符集合)

用”[]“(方括号)括起来的内容,就是字符集合。[Rr]表示R或者r都可以。

“[]”本身不匹配任何内容,只是定义一个字符集合。字符集合定义一个取字符的范围,在这个范围里匹配单个字符。

所以:

[Rr]eg[Ee]x

可以匹配RegEx、regEx、Regex等等,但是不匹配REGEX,因为中间的eg必须小写。

6.字符集合区间

如果要匹配单个数字,可以这样定义字符集合:

[0123456789]

也可以这样定义:

[0-9]

意思是一样的。用一个减号连起来表示字符集合区间,也可以用[A-Z]、[a-z]、[A-F]等等。

注意,用“-”表达的字符集合区间的范围是按照ASCII码排列的。

另外注意,[6-3]这样的范围是没有意义的,因为前一个字符在ASCII码中的位置一定要比后一个字符靠前。

如果要从所有字母和数字中匹配一个字符,可以这样写:

[A-Za-z0-9]

如果要匹配web颜色值,可以这么写:

#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]

因为web颜色值的格式是:#后面跟6个字符,这6个字符要么是数字,要么是任意大小写的A到F之间的字母。

7.字符集合中的取“非”匹配

意思就是“除了xxx以外”的匹配。比如要匹配“除了R和r以外的任意字符”,那么就是:

[^Rr]

“\^”符号就是键盘上的Shift+6。取非字符作用于它所属的整个字符集合,而不是紧跟它的字符。

接下来讲元字符(专用语法字符)。

留言