PostgreSQL正则表达式查询
参考http://www.php100.com/manual/PostgreSQL8/functions-matching.html
LIKE
string LIKE pattern [ ESCAPE escape-character ]
string NOT LIKE pattern [ ESCAPE escape-character ]
每个 pattern 定义一个字串的集合。 如果该 string 包含在 pattern 代表的字串集合里,那么 LIKE 表达式返回真。 (和我们想象的一样,如果 LIKE 返回真,那么 NOT LIKE 表达式返回假, 反之亦然。一个等效的表达式是 NOT (string LIKE pattern).)
如果 pattern 不包含百分号 或者下划线,那么该模式只代表它本身; 这时候 LIKE 的行为就象等号操作符。 在 pattern 里的下划线 (_)代表(匹配)任何单个字符; 而一个百分号(%)匹配任何零或更多 字符长的字串。
下面是一些例子∶
'abc' LIKE 'abc' true
'abc' LIKE 'a%' true
'abc' LIKE '_b_' true
'abc' LIKE 'c' false
LIKE 模式匹配总是覆盖整个字串。 要匹配在字串内部任何位置的序列,该模式必须以百分号开头和结尾。
LIKE运算符也可以匹配指定的字符串,但与~不同,LIKE匹配的字符串如果在文本中间出现,则找不到它,相应的行也不会返回。而~在文本进行匹配,如果被匹配的字符串在文本中出现,~将会找到它,相应的行会被返回。
Table 正则表达式匹配操作符(注意:~相当于like)
| 操作符 | 描述 | 例子 |
|---|---|---|
| ~ | 匹配正则表达式,大小写相关 | 'thomas' ~ '.*thomas.*' |
| ~* | 匹配正则表达式,大小写无关 | 'thomas' ~* '.*Thomas.*' |
| !~ | 不匹配正则表达式,大小写相关 | 'thomas' !~ '.*Thomas.*' |
| !~* | 不匹配正则表达式,大小写无关 | 'thomas' !~* '.*vadim.*' |
正则表达式量词
| 量词 | 匹配 |
|---|---|
| * | 一个匹配 0 或者更多个原子的序列 |
| + | 一个匹配 1 或者更多个原子的序列 |
| ? | 一个匹配 0 个或者 1 个原子的序列 |
| {m} | 一个正好匹配 m 个原子的序列 |
| {m,} | 一个匹配m 个或者更多原子的序列 |
| {m,n} | 一个匹配 m 到 n 个(包含两端) 原子的序列;m 不能比 n 大 |
| *? | * 的非贪婪模式 |
| +? | + 的非贪婪模式 |
| ?? | ? 的非贪婪模式 |
| {m}? | {m} 的非贪婪模式 |
| {m,}? | {m,} 的非贪婪模式 |
| {m,n}? | {m,n} 的非贪婪模式 |
{...} 的形式被称作范围。 一个范围内的数字 m 和 n 都是无符号十进制整数, 允许的数值从 0 到 255(闭区间)。
正则表达式约束
| 约束 | 描述 |
|---|---|
| ^ | 匹配字串的开头 |
| $ | 匹配字串的结尾 |
| (?=re) | 正前瞻 匹配任何匹配 re 的 子字串起始点(只在 ARE 中有) |
| (?!re) | 负前瞻 匹配任何不匹配 re 的子字串的起始点。(只在 ARE 中有) |
PostgreSQL正则表达式查询的更多相关文章
- Postgresql 正则表达式【转】
原文:http://blog.csdn.net/wugewuge/article/details/7704996 postgresql支持POSIX 风格的正则表达式,在postgresql中使用正则 ...
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- ElasticSearch入门 第九篇:实现正则表达式查询的思路
这是ElasticSearch 2.4 版本系列的第九篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- PostgreSQL LIKE 查询效率提升实验<转>
一.未做索引的查询效率 作为对比,先对未索引的查询做测试 EXPLAIN ANALYZE select * from gallery_map where author = '曹志耘'; QUERY P ...
- MongoDB 正则表达式查询
正则表达式查询 $regex 注:^ 取反的意思 用特殊的转义字符需要在前面加一个斜杠 通过 ^取反 ,再通过$not取反,就可获得只包含一种类型的数据 \\d 数字 \\s 空格 \\ ...
- MySQL-快速入门(6)连接查询、子查询、正则表达式查询、数据的插入删除更新
1.内连接查询:inner join ... on 只有满足条件的记录才能够出现在结果关系中,即完全相等.自连接查询是一种特殊的内连接查询. 2.外连接查询: 1>左外连接 / 左连接:返回包括 ...
- Postgresql 正则表达式
在postgresql中使用正则表达式时需要使用关键字“~”,以表示该关键字之前的内容需匹配之后的正则表达式,若匹配规则不需要区分大小写,可以使用组合关键字“~*”: 相反,若需要查询不匹配这则表达式 ...
- Postgresql 正则表达式(转)
原文:http://blog.csdn.net/wugewuge/article/details/7704996 postgresql支持POSIX 风格的正则表达式,在postgresql中使用正则 ...
- PostgreSQL - 模糊查询
前言 like.not like在SQL中用于模糊查询,%表示任意个字符,_表示单个任意字符,如果需要在模糊查询中查询这两个通配符,需要用ESCAPE进行转义,如下: select * from ta ...
随机推荐
- Android4.3模拟器界面中右侧菜单按钮无法使用问题解决办法
开发环境:笔记本电脑Windows2008+MyEclipse 10+Android4.3 问题描述:运行或者调试Android项目时,发现模拟器中右侧Menu按钮无法点击,截图如下: 查看在Andr ...
- uva 1561 - Cycle Game(推理)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=4336" style=""& ...
- if语句之猜拳
用计算机来生成随机数: Random rand = new Random();//做一个随机生成器,Random();后面的括号里面可以放一个随机生成器种子,这个种子只能为整数(int)int n = ...
- iOS开发--汉字转成没有声调也没有空格的拼音
//汉字转成没有声调也没有空格的拼音- (NSString *)transformToPinYin:(NSString *)wordStr { NSMutableString *mutable ...
- URAL 1260 Nudnik Photographer DFS DP
题目:click here :这个题可以先dfs深搜下,规律dp dfs: #include <bits/stdc++.h> using namespace std; #define S ...
- java-输出格式
https://docs.oracle.com/javase/tutorial/java/data/numberformat.html Formatting Numeric Print Output ...
- [翻译]Django速查表
原文在此:https://code.djangoproject.com/wiki/DjangoCheatSheet Django速查表Django教程已经非常好了.这个速查表的作用是创建一个快速开始指 ...
- vs2010中iostream.h出错
使用 #include <iostream> using namespace std; 替代 VS2010删除了所有非标准库,保留了C++标准库,iostream.h是以前旧版的库,VS2 ...
- Java学习笔记51:数组转ArrayList和ArrayList转数组技巧
ArrayList转数组: public class Test { public static void main(String[] args) { List<String> list = ...
- Sicily-1009 梅森素数
一.梅森素数 素数有无穷多个,却只有极少量的素数能表示成2p-1(p为素数)的形式.在不大于257的素数中,当p=2.3.5.7.13.17.19.31.67.127.257时,2p-1是素数,其它都 ...