常见正则表达式使用参考

2023-10-17 08:51:54 浏览数 (2)

一、正则函数

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]

空白行

ns*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*$

^

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

$

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

.

匹配除"rn"之外的任何单个字符。

[...]

字符集。匹配包含的任一字符。例如,"[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

匹配任意的空白符,相等于 [tnrf]

\S

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

\d

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

\D

匹配任意非数字的字符

\G

当前搜索的开头

\n

换行符

\b

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

\B

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

\t

制表符

\Q

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

\E

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

三、特殊字符转义

要转义的字符

转义字符

.

\.

\\

换行符

\n

\;

{

\{

}

\}

0 人点赞