1、匹配若干字符之一
在一个字符组中可以举例任意多个字符。例如 [123456] 匹配1到6中的任意一个数字。。这个字符组可以作为 <H[123456]> 的一部分,用来匹配 <H1>,<H2>,<H3> 等等。在搜索HTML 代码的头文件时这非常有用。
如果我们需要搜索的是单词“grey”,同时又不确定它是否写作“gray”,就可以使用正则表达式结构体(construct) [...]。它容许使用者列出在某处期望匹配的字符,通常被称作字符组。 e 匹配字符 e, a 匹配字符 a,而正则表达式 [ea] 能匹配e或者a。所以 gr[ea]y 的意思是:先找到g,跟着是一个r,然后是一个e或者a,最后才是一个y。
在字符组内部,字符组元字符 “-”连字符 表示一个范围。
<H[1-6] 与<H123456>是完全一样的。 [0-9]和 [a-z] 是常用的匹配数字和小写字母的简便方式。多重范围也是容许的,列如[0123456789abcdefABCDEF]可以写作[0-9a-fA-F](或者也可以写作[A-Fa-f0-9],顺序无所谓)。
我们还可以随心所欲地把字符范围与普通文本结合起来,
[0-9A-Z_!.?] 能够匹配一个 数字、大写字符、下划线、感叹号、点号,或者是问号。
请注意,只有在字符组内部,连字符才是元字符,否则它就只能匹配普通的连字符号。其实,即使在字符组内部,它也不一定就是元字符。如果连字符出现在字符组开头,它表示的就只是一个普通字符,而不是一个范围。同样的道理,问号和点号通常被当作元字符处理,但在字符组中则不是如此(说明白一点就是, [0-9A-Z!.?] 里面,真正的特殊字符就只有那两个连字符)。
字符组 又称 字符集