SQL正则表达式总结 - 实践

news/2025/10/2 22:18:54/文章来源:https://www.cnblogs.com/tlnshuju/p/19124086

SQL正则表达式总结 - 实践

2025-10-02 22:13  tlnshuju  阅读(0)  评论(0)    收藏  举报

这里写目录标题

  • 一、元字符
  • 二、正则表达函数
    • 1、 `regexp_like(x,pattern[,match_option])`
    • 2、 regexp_instr(x,pattern[,start[,occurrence[,return_option[, match_option]]]])
    • 3、 REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])
    • 4、 REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])

一、元字符

当我们要进行一些简单的糊涂查询时用百分号(%),通配符(_)就可以了.其中%表达任意长度的字符串,_表示任意的某一个字符。但如果在一些复杂的查询中关用这两个符号sql语句就会非常复杂,而且也不一定能实现.从Oracle 10g开始引入了在其他程序语言中普通使用的正则表达式。主要有regexp_like(匹配),regexp_replace(替换),regexp_substr(提取),regexp_instr(包含)四个正则表达式函数。

在这里插入图片描述

二、正则表达函数

1、 regexp_like(x,pattern[,match_option])

含义:查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option的取值如下:

  1. ‘c’ 说明在进行匹配时区分大小写(缺省值);
  2. ‘i’ 说明在进行匹配时不区分大小写;
  3. ‘n’ (.)点号能表示所有单个字符;
  4. ‘m’ 字符串存在换行的时候当作多行处理.这样就可匹配每行的结尾.不然的话就可匹配每行的结尾.不然的话就可匹配每行的结尾.不然的话只匹配字符串最后的位置。
select * from emp where regexp_like(ename,'^a[a-z]*n$')
解析:
从emp表中匹配ename字段,要求以a开头,a-z任意多个字符(包括0个),n结尾。
例如ename为arwen或arwin或anden.但Arwen不能被匹配.因为默认是区分大小写。
select * from emp where regexp_like(ename,'^a[a-z]*n$','i')
可以查找ename为Arwen的行记录。

2、 regexp_instr(x,pattern[,start[,occurrence[,return_option[, match_option]]]])

含义:用于在x中查找pattern。返回pattern在x中出现的位置。匹配位置从1开始。可以参考字符串函数 INSTR(),参数相关:

  1. ‘start’ 开始查找的位置;
  2. ‘occurrence’ 说明应该返回第几次出现pattern的位置;
  3. ‘return_option’ 说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后的字符的位置;
  4. ‘match_option’ 修改默认的匹配设置。与regexp_like里面的相同。
SELECT REGEXP_INSTR('hello world','o',1,1,0);
==》5
解析:
查找o在hello word中第一次出现的位置。
start=1,occurrence=1,return_option=0
SELECT REGEXP_INSTR('hello world','o',1,1,1);
==》6
查找o在hello word中第一次出现后的字符的位置,这里return_option=1也可以等于其他非0整数。
SELECT REGEXP_INSTR('hello world','o',1,2,0);
==》8
查找o在hello word中第二次出现的位置(空格也属于一个字符位置)。

3、 REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])

**含义:**用于在x中查找pattern并返回。可以参考字符串函数 SUBSTR(),参数同REGEXP_INSTR函数。

在这里插入图片描述

SELECT REGEXP_SUBSTR('hello world','l{2}');
==》ll
解析:
查询到匹配的字符串才返回匹配的字符.没查到就返回空。

4、 REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])

含义:用于在x中查找pattern,并将其替换为replae_string。可以参考字符串函数 REPLACE(),参数同REGEXP_INSTR函数。

REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。注意:from_str不能是空字符串 ('')。

SELECT REGEXP_REPLACE('hello world','o','x',1,1);
==》hellx world
解析:
start=1,occurrence=1。
SELECT REGEXP_REPLACE('hello world','o','x');
==》hellx wxrld
SELECT REGEXP_REPLACE('hello world','o','x',1,2);
==》hello wxrld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pdfminer-Vulnerability-Research

Pdfminer code auditing and script development script path: https://github.com/L1nq0/Pdfminer-CMap-Generator CMapDB Deserialization cmapdb.py#CMapDB._load_data 调用 pickle.loads_load_data 传入参数 name…

从事网站建泰安网站建设公司带

目录 一、界面演示 二、设备列表 三、抖动单元格 四、设备模型 五、设备编辑 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631333.htm…

营口工程建设信息网站wordpress frame

二进制是一种数制,也称为基数为2的数制。在二进制系统中,数值使用0和1这两个数字来表示。每一位二进制数字称为一个比特(bit),是计算机中最基本的信息单位。多个比特组合在一起可以表示更大的数值或数据。 在计算机科…

10.2笔记

HBase 数据库 架构理解: HMaster:管理 RegionServer 的负载均衡、Region 分配等。 RegionServer:负责数据的读写操作,管理多个 Region。 ZooKeeper:协调集群状态,监控 RegionServer 存活。 HDFS:底层存储,HBas…

阜阳网站制作公司去哪找可信赖的广州做网站

前言:在最近学习 Vue.js 的时候,看到国外一篇讲述了如何使用 Vue.js 和 Vuex 来构建一个简单笔记的单页应用的文章。感觉收获挺多,自己在它的例子的基础上进行了一些优化和自定义功能,在这里和大家分享下学习心得。 在这篇教程中我…

北京国互网网站建设报价wordpress 判断手机

😀前言 中文乱码处理 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 在csdn获奖荣誉: &#x1f3c…

网站可以随便创建么北京网站设计与制作公司

最近由于需要来学习一下pymysql。 先来认识一下pymysql: PyMySQL 是 Python 中一个用于连接 MySQL 数据库的库。它允许 Python 程序通过简单的 API 调用来连接、操作和管理 MySQL 数据库。PyMySQL 是在 Python 中使用纯 Python 编写的,因此它可以在几…

Shell / Bash 学习

一、Shell / Bash 快速 Cheat Sheet(速查手册) 以下摘自 Devhints、LinuxConfig 和 Red Hat 的优秀 Bash cheat sheet 集合:Devhints – Bash Scripting Cheatsheet (Devhints.io cheatsheets) LinuxConfig Bash Sc…

【Linux 架构探幽:从入门到内核・系统编程开篇】基础指令与权限精讲,筑牢框架制作根基

【Linux 架构探幽:从入门到内核・系统编程开篇】基础指令与权限精讲,筑牢框架制作根基pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

chisel,spatial和spinalhdl的比较

chisel,spatial和spinalhdl的比较从外表上看,spinalhdl可能要更简明易用一些。 chisel和spatial有强大的生成功能,但是魔术更多一些。 其中chisel在生成的过程中,容易丢失一些信息,需要人为补强。 而spatial则高度…

东方市住房和城乡建设局网站沈阳网站建设的价格

Splunk 是搜索、监控和分析机器生成大数据的软件领先提供商,为其旗舰产品 Splunk Enterprise 发布了紧急安全更新。 这些更新解决了几个构成重大安全风险的关键漏洞,包括远程代码执行 (RCE) 的可能性。 受影响的版本包括 * 9.0.x、9.1.x 和 9.2.x&…

网站优化怎么做关键词排名建德网页制作公司

列宽固定居中的设置的时候,我们通常使用 p{宽度} 来指定固定的列宽,这时单元格会自动换行,换行之后是左对齐的,如何获得居中对齐呢?\begin{tabular}{|p{54pt}l|p{71pt}c|p{71pt}c|}\hline Method& Train set&T…

使用 Dart 进行验证码识别

Dart 是 Google 推出的编程语言,通常用于构建移动应用(如使用 Flutter),但它也能处理服务器端任务。通过使用 tesseract 的 Dart 包,我们可以轻松实现验证码的识别。 更多内容访问ttocr.com或联系1436423940安装 …

用 Rust 进行验证码识别

Rust 本身并没有直接的 OCR 库,但我们可以通过调用 Tesseract OCR 库来实现验证码识别。下面是具体的步骤。 更多内容访问ttocr.com或联系1436423940安装 Rust首先,确保你的系统已经安装了 Rust。如果没有,请通过以…

国庆集训Day1

国庆集训Day1T1 ddl思路 根据题意模拟 解法 分别计算取\(l\),\(r\)时的总时间,与\(L\)比较 若无法全部完成,则\(sort\)一遍,从小到大选 归纳总结解题策略 模拟 结果 100pts 时间分配 10minT2 fold思路 根据题意模拟…

ChIPBase network菜单 生成tf的excel ,用于构建 TF → mRNA(即 CDKN3)调控关系的详细过程和教程 - 实践

ChIPBase network菜单 生成tf的excel ,用于构建 TF → mRNA(即 CDKN3)调控关系的详细过程和教程 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display:…

网站模板如何删除中国建筑装饰

数据库中统计信息描述的数据库中表和索引的大小数以及数据分布状况,统计信息的准确性对优化器选择执行计划时具有重要的参考意义。本文简要整理了下传统数据库和国产数据库中统计信息的自动更新机制,以加深了解。 1、数据库统计信息介绍 优化器是数据库…

绵阳做seo网站公司受欢迎的网站建设案例

under the moon和いじわる my master里面提到过,青蔷薇是一种只能在魔界盛开的花,花语是:不可能。青蔷薇姬的故事是:我不要你的珠宝,只要你的真心。[separator][quote]11月1日闭幕的东京国际花卉博览会上,全…

实用指南:机器学习:线性回归

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站建设目的和意义手机版网页开发者工具

S01E02列表 列表是什么列表的操作修改、添加和删除元素列表排序列表倒序列表长度遍历整个列表 数值列表创建数值列表数值列表简单统计计算列表推导式 列表切片复制列表 列表是什么 在Python中,用方括号([ ])表示列表,用逗号分隔其…