gp数据库正则表达式

gp数据库正则表达式,第1张

gp数据库正则表达式

在gp数据库中使用正则表达式时需要使用关键字“~”,以表示该关键字之前的内容需匹配之后的正则表达式,若匹配规则不需要区分大小写,可以使用组合关键字“~*”;

相反,若gp数据库正则表达式需要查询不匹配这则表达式的记录,只需在该关键字前加否定关键字“!”即可。若正则表达式包含转义字符,则需在表达式前加关键字“E”。

[[:<:]]

[[:>:]]

分别匹配一个单词开头和结尾的空的字符串,这个单词开头和结尾都不是包含在alnum中

的字符也不能是下划线。(alnum表示英文字母和数字字符)

mysql>select “a word a” REGEXP “[[:<:]]word[[:>:]]”->1(表示匹配)

mysql>select “a xword a” REGEXP “[[:<:]]word[[:>:]]”->0(表示不匹配)

SELECT * FROM Products WHERE account_id REGEXP '[[:<:]]12[[:>:]]'

表示account_id中匹配"111 12 897"这样的account_id

Oracle 正则表达式函数,

第一个是输入的字符串

第二个是正则表达式

第三个是标识从第几个字符开始正则表达式匹配。(默认为1)

第四个是标识第几个匹配组。(默认为1)

第五个是是取值范围:

i:大小写不敏感;

c:大小写敏感;

n:点号 . 不匹配换行符号;

m:多行模式;

x:扩展模式,忽略正则表达式中的空白字符。

regexp_substr(t1.GRADE,'[0-9,\.]+',1,1) 就是从t1.GRADE中的第一个字符开始查找第一个匹配正规表达式的值,表达式符合:[0-9,\.]+,即允许是0123456789,.十二个字符中的任意一个或多个组合,且长度必须大于1。

3(54335*453)如何只匹配括号前的数据可以这样:

regexp_substr(t1.GRADE,'[0-9]+',1,1),这个也要看括号前有哪些字段有关,要看具体的情况,我这里认为括号前全是数字。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10075890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存