1.POSIX正则
1.1.使用规则
符号 说明 ~ 匹配正则, 区分大小写 ~* 匹配正则, 不区分大小写 !~ 不匹配正则, 区分大小写 !~* 不匹配正则, 不区分大小写
1.2.字符匹配列表
符号 说明 ^ 以特定字符或字符串开头 . 匹配任何单个字符 * 匹配0个和多个字符串 + 匹配前面的字符1次和多次 <字符串> 匹配包含知道的字符串和文本 [字符串list] 匹配字符集合中的任何一个字符 [^] 匹配不在括号中的任何符号 字符串{n,} 匹配前面的字符串至少n次 字符串{n,m} 匹配前面的字符串至少n次,至多m次
1.3.实例
1.3.1.查询以字符或字符串开头的记录
select * from table_name where name ~ '^A' ;
1.3.2.查询任意字符
select * from table_name where name ~ 'A.C' ;
1.3.3.匹配多个字符
select * from table_name where name ~ '^AB*' ;
select * from table_name where name ~ '^AB+' ;
1.3.4.匹配多个字符中的一个
select * from table_name where name ~ '[AB]' ;
1.3.5.匹配非指定字符
select * from table_name where name ! ~ '[A-C1-6]' ;
1.3.6.匹配指定次数
select * from table_name where name ~ 'AB{2,7}' ;
2.1.使用规则
符号 说明 % 匹配任何零个或多个 _ 单个匹配符 LIKE 区分大小写的匹配 ILIKE 匹配, 不区分大小写 NOT LIKE 不匹配, 区分大小写 NOT ILIKE 不匹配, 不区分大小写
说明: 使用反斜杠进行转义%, 如:\%
来匹配字符中的%
. 也可以不使用反斜杠作为转义, 自定义转义符号, 如:
select * from table_name where name like 'ab#%%' escape '#' ;
2.2.实例
select * from table_name where name like 'a%c' ;
3.1.使用规则
符号 说明 % 匹配任何零个或多个 _ 单个匹配符 | 表示选择两个候选项之一,两个字符匹配其中之一就可以。类似“或”。 * 表示重复前面的指定的项0次或多次。 + 表示重复前面的指定项1次或多次。 ? 表示重复前面的指定项0次或1次。 {m} 表示重复前面的项m次。 {m,} 表示重复前面的项m次或更多次。 {m,n} 表示重复前面的项至少m次,不超过n次。 () 可以作为项目分组到一个独立的逻辑项中。 […] 声明一个字符类,就像POSIX正则表达式。
3.2.实例
select * from table_name where name similar to 'AB%' ;
select * from table_name where name similar to '%(321|abc)%' ;
select * from table_name where name similar to '%(abc|efg)' ;