常见正则表达式使用参考

news2024/11/18 9:21:54

目录

一、正则函数

1.REGEXP

2.regexp_replace

3.regexp_extract

二、正则表达式

三、特殊字符转义


一、正则函数

1.REGEXP

语法格式: A REGEXP B (A是需要匹配的字符串,B是正则表达式字符串)

操作类型: strings 

描述: 功能与RLIKE相同

select '你好啊' regexp '你好';

select '你好啊' regexp '不好';

2.regexp_replace

语法格式: regexp_replace(string A, string B, string C) 

返回值: string

说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。

select regexp_replace('四川办第1名', '\\d+', '一');

3.regexp_extract

语法格式:regexp_extract(string subject, string pattern, int index)

返回值: string

说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符,index从1开始计。

select regexp_extract('四川办:第1名', '([0-9]+)', 1);

二、正则表达式

匹配规则表达式
中文字符[\u4e00-\u9fa5]
双字节字符(包含汉字在内)[^\x00-\xff]
空白行\n\s*\r
email地址[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
网址URL[a-zA-z]+://[^\s]*
国内电话号码\d{3}-\d{8}|\d{4}-\{7,8}
腾讯qq号[1-9][0-9]{4,}
中国邮政编码[1-9]\d{5}(?!\d)
18位身份证号^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
(年-月-日)格式日期([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
正整数^[1-9]\d*$
负整数^-[1-9]\d*$
整数^-?[1-9]\d*$
非负整数(正整数+0)^[1-9]\d*|0$
非正整数(负整数+0)^-[1-9]\d*|0$
正浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
负浮点数^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$

^

匹配输入字符串开始的位置。

$

匹配输入字符串结尾的位置。

.

匹配除"\r\n"之外的任何单个字符。

[...]

字符集。匹配包含的任一字符。例如,"[abc]"匹配"plain"中的"a"。

[^...]

反向字符集。匹配未包含的任何字符。例如,"[^abc]"匹配"plain"中"p","l","i","n"。

\\A

匹配输入字符串开始的位置(无多行支持)

\\z

字符串结尾(类似$,但不受处理多行选项的影响)

\\Z

字符串结尾或行尾(不受处理多行选项的影响)

re*

重复零次或更多次

re+

重复一次或更多次

re?

重复零次或一次

re{ n}

重复n次

re{ n,}

re{ n, m}

重复n到m次

a|b

匹配 a 或者 b

(re)

匹配 re,并捕获文本到自动命名的组里

(?: re)

匹配 re,不捕获匹配的文本,也不给此分组分配组号

(?> re)

贪婪子表达式

\\w

匹配字母或数字或下划线或汉字

\\W

匹配任意不是字母,数字,下划线,汉字的字符

\\s

匹配任意的空白符,相等于 [\t\n\r\f]

\\S

匹配任意不是空白符的字符

\\d

匹配数字,类似 [0-9]

\\D

匹配任意非数字的字符

\\G

当前搜索的开头

\\n

换行符

\\b

通常是单词分界位置,但如果在字符类里使用代表退格

\\B

匹配不是单词开头或结束的位置

\\t

制表符

\\Q

开始引号:\Q(a+b)*3\E 可匹配文本 "(a+b)*3"。

\\E

结束引号:\Q(a+b)*3\E 可匹配文本 "(a+b)*3"。

三、特殊字符转义

要转义的字符

转义字符

.

\\.

\

\\\\

换行符

\\n

\\;

{

\\{

}

\\}

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

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

相关文章

UniTask详解

前言 UniTask为Unity提供一个高性能,0GC的async/await异步方案。 基于值类型的UniTask和自定义的 AsyncMethodBuilder 来实现0GC使所有 Unity 的 AsyncOperations 和 Coroutines 可等待基于 PlayerLoop 的任务( UniTask.Yield, UniTask.Delay, UniTask.DelayFrame…

哈工大机器学习复习笔记(四)

本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于…

Scala 简单实现数据库连接池

在使用JDBC的时候,连接池是非常宝贵的资源。为了复用这些资源,可以将连接保存在一个队列中。当需要的时候可以从队列中取出未使用的连接。如果没有可用连接,则可以在一定时间内等待,直到队列中有可用的连接,否则将抛出…

浅谈估值模型:PB指标与剩余收益估值

摘要及声明 1:本文简单介绍PB指标的推导以及剩余收益的估值方式; 2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流&#xff1b…

【HTML】HTML 标签 ① ( 骨架标签 | 双标签和单标签 | 嵌套关系和并列关系 | 文档类型 | 页面语言 | 编码字符集 )

文章目录一、HTML 标签简介二、HTML 骨架标签三、双标签和单标签四、嵌套关系和并列关系五、文档类型六、页面语言七、编码字符集一、HTML 标签简介 HTML 英文全称 " HyperText Mark-up Language " , 中文名称是 " 超文本标记语言 " ; 多媒体 : 超文本 指…

小 C 爱观察(observe)

小 C 爱观察(observe)题目描述输入格式输出格式样例输入数据#1输出数据#1解释#1输入数据#2输出数据#2输入数据#3输出数据#3题目描述 小 C 非常喜欢树。上次后院的蚂蚁看腻了,这次准备来观察树。 小 C 每天起得早早的,给小树浇水…

shell 流程控制之条件判断及案例

目录 流程控制之条件判断 一,if条件语句的语法及案例 1,单分支结构 2,双分支结构 3,多分支结构 二,复合指令 三, exit退出程序 四, 多条件判断语句case 流程控制之条件判断 条件判断语句…

【SpringCloud】Sentinel 之隔离与降级

一、上集回顾上级文章地址:【SpringCloud】Sentinel 之流量控制_面向架构编程的博客-CSDN博客上一篇文章我们讲解了Sentinel 流量控制、流控效果、热点参数限流的用法,统称为限流,它是一种预防措施,可以尽量避免因高并发而引起的服…

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍。 阅读本文,你可以了解在 Kubernetes 内外,数据包是如何转发的,从原始的 Web 请求开始,到托管应用程序的容器。 Kubernetes 网络要求 在深入…

【three.js】本地搭建Threejs官方文档网站 解决threejs官方文档打开过慢得到问题

本文主要为了解决three.js 官方文档 打开过慢的问题 因为Three.js官网是国外的服务器,所以为了方便学习和快速的查阅文档,我们可以自己搭建Three.js官网和文档,方便随时查看案例和文档内容进行学习。 1、首先进入threejs库GitHub地址&#xf…

如何成为一名FPGA工程师?需要掌握哪些知识?

我国每年对于FPGA设计人才的需求缺口很大。在需求缺口巨大的情形下,发展前景相对可观。那么如何成为一名FPGA工程师? 什么是FPGA? FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它…

新手入门Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库,它允许你跨组件或页面共享状态。它和Vuex作用类似(发音为 /piːnjʌ/),官网 为什么要使用Pinia 与 Vuex 相比,Pinia 不仅提供了一个更简单的 API,也提供了符合组合式 API 风格的 API&#xff0…

vue项目创建

前提:node安装:02node安装_哔哩哔哩_bilibili 1. 查看node版本 查看node版本 node -v 查看npm 版本 npm -v 2. 输入cmd 用管理员打开控制台 3. 设置淘宝镜像 npm config set registry https://registry.npm.taobao.org 4. 安装vue脚手架 npm install -g …

北大青鸟昌平校区:2023年云计算发展趋势!

云计算的大规模应用一直是许多最具变革性技术——如人工智能、物联网等的关键驱动力,未来也将进一步推动虚拟现实和增强现实(VR/AR)、元宇宙、甚至量子计算等技术的发展。近日,在美国《福布斯》网站报道中,列出了2023年云计算领域的五大主要趋…

56.Isaac教程--ROS

ROS ISAAC教程合集地址文章目录ROS安装ROS创建和使用自定义 ROS 包创建 ROS BridgeRos节点时间同步器消息转换器基地姿势同步自定义小码示例:将 ROS 导航堆栈与 Isaac 结合使用在此示例上构建将 Isaac 映射转换为 ROS 映射Isaac 和机器人操作系统 (ROS) 都使用消息传…

other-chatGPT记录

title: other-chatGPT记录 categories: Others tags: [人工智能, ai, 机器人, chatGPT] date: 2023-02-02 10:04:33 comments: false mathjax: true toc: true other-chatGPT记录 前篇 官网 https://openai.com/api - https://openai.com/api/测试 - https://platform.openai.…

DSP_CCS7实现变量的导出与MatLAB读取

前言 最近在做基于dsp平台的无通信接口系统辨识,因此需要直接利用CCS将数据导出,然后再利用MatLAB解析读取后的数据。MatLAB的代码参考了以下这篇链接: -/导出CCS3.3数据及使用matlab处理的方法.md at master dailai/- GitHub 高版本的CCS&#xff…

GitHub访问问题与 Steam++下载及使用(适合小白)

前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 ​ 目录 前言 一、Steam的介绍 1、大概介绍 2、详细介绍 二、Ste…

Unity与Android交互(双端通信)

前言 最近小编开始做关于手部康复的项目,需要Android集成Unity,以Android为主,Unity为辅的开发;上一篇给大家分享了Unity嵌入Android的操作过程,所以今天想给大家分享一下双端通信的知识; 一. Android与Un…

安装OpenResty

安装OpenResty 1.安装 首先你的Linux虚拟机必须联网 1)安装开发库 首先要安装OpenResty的依赖开发库,执行命令: yum install -y pcre-devel openssl-devel gcc --skip-broken2)安装OpenResty仓库 你可以在你的 CentOS 系统中…