IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 一篇文章打通PostgreSql(pgsql)的正则匹配: like similar to ~。 以及与 mysql 正则匹配的区别。 -> 正文阅读

[大数据]一篇文章打通PostgreSql(pgsql)的正则匹配: like similar to ~。 以及与 mysql 正则匹配的区别。

1. like

模糊匹配 like 是最简单的最通用的匹配符, 用法同 mysql

1)? _ : 匹配任意一个字符

2) % : 匹配任意个任意字符

例如 : 要从表aaa中查询 字段bbb 倒数第三位为字符 M 的行, 可以写做

select
    *
from
    aaa
where
    bbb like '%M__'

%代表M之前可以有任意字符(一个字符也没有也可以), M后面跟着的两个下划线_ 代表 M 后面还有两个字符, 那么M就是倒数第三个的字符

注意 : like 是完整匹配, 不需要定界符。 也就是说, 必须要字符串完全匹配你所写的内容, 才会生效。

2.? similar to

similar to 是 pgsql 特有的, 介于正则匹配符~(后文会讲到) 与 模糊匹配 like 之间的符号

1) similar to 支持 like 的 _ 以及 % 这两个符号

2) similar to 也支持 正则匹配的常用操作(见后文)

注意 : similar to 也是完整匹配, 不需要定界符。 也就是说, 必须要字符串完全匹配你所写的内容, 才会生效。

3.TILDE (?~?) 运算符

腭化符号 ~ 是 pgsql 特有的代表正则匹配的运算符, 作用相当于 mysql 中的 rlike

1) 不支持模糊匹配的 _ 与 %, 但可以用相应的正则表达式替换, 如 % 可以写作 .*

2) 支持正则表达式(见后文)

3) ~ 代表确定大小写的正则匹配

??????? ~* 代表忽视大小写的正则匹配

??????? !~ 代表确定大小写的非正则匹配

??????? !~* 代表忽视大小写的非正则匹配

注意 : ~ 也是部分匹配, 也就是字符串中有某个部分能匹配到正则规则的时候, 就会生效。 所以如果需要匹配完整字符串, 需要加上定界符 ^ 和 $

4.正则表达式

文末简单列几个常用的正则表达式

1. \d : 任意数字

2. \D : 任意不是数字的字符

3. \w : 任意数字、字母, 或者下划线

4. \W : 任意不是数字、字母, 或者下划线的字符

5. \s : 任意空白字符 (空格, tab, 换页)

6. \S : 任意不是空白字符的字符

7. ^ : 开头定界符

8. $ : 结尾定界符

9. () : 圆括号内的字符串作为一个整体

10. [] : 方括号内的字符串出现任意一个就可以了。 方括号内也可以用 - 来连接连续的字符

??????? 比如 : [abcd] 代表出现abcd中任意一个字符就可以了, [a-d] 起到了与前者一样的作用

11. {} : 花括号代表前面的数字出现了多少次

??????? 1) {n} : 代表前面的字符串出现了n次。

????????????????比如 (abc){3} 就代表匹配 abcabcabc, [a-d]{3} 则代表匹配 aaa,abc, adb等等。

??????? 2) {n, } : 加上一个逗号, 代表前面的字符串至少出现n次

??????? ??????? 比如: (abc){2, } 可以匹配 abcabc, 也可以匹配 abcabcabc, 也可以匹配abcabcabcabc 等等

??????? 3) {n, m} : 代表前面的字符串要出现 n 到 m 次

12. “.” : 代表匹配除了换行以外的任意字符 (不需要双引号, 只是为了让大家能够看清这儿有个点)

13. * : 代表前面的字符或者字符串出现任意次, 即 0 到 正无穷次

14. ? : 代表前面的字符串出现 0 次 或者 1 次

15. + : 代表前面的字符串至少出现 1 次, 即出现 1 到正无穷次

参考资料

正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_Miles-的博客-CSDN博客_正则表达式\w

正则表达式(括号)、[中括号]、{大括号}的区别小结_pilifeng1的博客-CSDN博客_正则括号用法?

Postgresql 正则表达式_DemonHunter211的博客-CSDN博客_pgsql 正则表达式

pgsql如何使用正则表达式的通配符,如匹配字母,数字_独孤尚良dugushangliang的博客-CSDN博客_pgsql 正则匹配?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:48:45  更:2022-10-08 20:51:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 -2025/5/1 8:17:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码