postSQL 正则表达式与like使用
在postgresql中使用正则表达式时需要使用关键字“~”,以表示该关键字之前的内容需匹配之后的正则表达式,若匹配规则不需要区分大小写,可以使用组合关键字“~*”;
相反,若需要查询不匹配这则表达式的记录,只需在该关键字前加否定关键字“!”即可。若正则表达式包含转义字符,则需在表达式前加关键字“E”。
例如:
select * from user where email ~ '^[A-H]' --匹配email地址以A-H开头的记录
select * from user where email ~* '^[a-h]' --匹配email地址以A-H和a-h开头的记录
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 中有) |
postSQL 正则表达式与like使用相关推荐
- 通过正则表达式校验手机号码,拿走即用!
校验手机号码 2021/01/06更新,电信新增了191号段 1. 单纯校验长度 2.正则表达式校验数字 3.正则表达式校验是否是大陆号码 4.正则表达式校验是否是香港号码 //校验长度private ...
- Linux shell 学习笔记(15)— shell 正则表达式
1. 定义 BRE 模式 1.1 纯文本 第一条原则就是:正则表达式模式都区分大小写.这意味着它们只会匹配大小写也相符的模式. $ echo "This is a test" | ...
- re2正则表达式匹配引擎的c接口版本cre2的中文使用手册
前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...
- 正则表达式(括号)、[中括号]、{大括号}的区别小结
正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...
- Python中正则表达式用法 重点格式以这个为准_首看_各种问题
20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...
- 正则语法完全正则表达式手册_语法格式重点
20211202 https://blog.csdn.net/lc11535/article/details/103266263 该表达式打开re.U(re.UNICODE)标志. python –& ...
- 正则表达式 - 语法
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: r ...
- 正则表达式中的\.表示什么意思
\ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符.
- ?:在正则表达式中什么意思
"?:"非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用. 单独的"?":匹配前面的子表达式零次或一次. 当"?"紧跟在任 ...
- 关于正则表达式 \1 \2之类的问题
我们创建一个正则表达式 var RegExp = /^(123)(456)\2\1$/; 这个正则表达式匹配到的字符串就是 123456456123 创建另外第二正则表达式 var RegExp1 = ...
最新文章
- layui ajax流加载,layui中流加载layui.flow
- 准备战争“软测试”之DB基础知识
- 八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox
- 关于redis性能估算的小方法
- 我用 PyTorch 复现了 LeNet-5 神经网络(CIFAR10 数据集篇)!
- proxool配置多数据库多连接池
- Spring Data JPA 从入门到精通~事务的处理及其讲解
- linux 卸载lv,Linux系统LVM(逻辑卷管理)的删除
- -分类数组-创建//修改(添加/改变原有/合并/删除)分类数组(categorical)
- 2016年 企业IT管理员需要做好这些准备
- 什么是NoSQL及NoSQL四大分类
- 在centos7环境下运行.exe文件
- android 沙盒双开 微信,微信双开回来了,还不会被封号
- PlantUML——程序员画架构图都靠它
- 【报错】CUDA error: device-side assert triggered
- php货币2019年12月31日汇率,2020年12月31日中国银行外汇汇率是多少,人民币汇率一览...
- android 程序颜色,android – 以编程方式设置scrim颜色
- 云产研见客户的行为分析
- 小米笔记本重装系统后触摸板失灵 的原因之一
- mixins的实用案例和常见问题