前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见正则表达式使用参考

常见正则表达式使用参考

作者头像
chimchim
发布2023-10-17 08:51:54
1630
发布2023-10-17 08:51:54
举报

一、正则函数

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

\\;

{

\\{

}

\\}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、正则函数
    • 1.REGEXP
      • 2.regexp_replace
        • 3.regexp_extract
        • 二、正则表达式
        • 三、特殊字符转义
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档