上QQ阅读APP看书,第一时间看更新
9.2.3 匹配多个字符中的一个
“.”匹配任何单个字符,但如果你想要匹配特定的字符怎么办?你可以指定用“[”和“]”括起来的字符集,如下:
▼ 输入
▼ 输出
▼ 分析
这里使用了正则表达式“[123]Ton”。“[123]”定义了一个字符集。这里它的意思是匹配1、2或者3,因此“1ton”和“2ton”都匹配并且被返回(这里没有“3ton”)。
如你所见,“[]”是另一种形式的OR语句,实际上,正则表达式“[123]Ton”是“[1|2|3]Ton”的缩写,后者具有前者同样的功能。然而“[]”字符必须定义OR语句搜索的内容。为了更好地理解,看下面的例子:
▼ 输入
▼ 输出
▼ 分析
呃,这里出现问题。需要的两行被检索到,然而还有多余的其他3行。这是因为MariaDB认为你的意思是'1'或者'2'或者'3ton'。字符“|”应用于整个字符串,除非它被括起来作为集合。
集合也可以取否定,即它们会匹配任何非指定的字符。为了否定字符集,在集合的开头使用“^”,因此,[123]匹配字符1、2或者3,[^123]匹配任何除了这些字符的字符。