sql中正则匹配/正则表达式的应用 |
您所在的位置:网站首页 › sql可以用正则表达式表示吗 › sql中正则匹配/正则表达式的应用 |
正则表达式在开发过程中作用明显,灵活多变的匹配方式提供了处理复杂数据的可能性。 在正式使用前,要了解基本组成元素和语法结构,并了解如何拼凑和理解。 一、基本元素 元素释义示例^匹配起始字符^a : 以a开头$匹配结尾字符ab$:以ab结尾.匹配单个字符a.c:a和c之间任意单个字符均可,如abc*匹配任意个数在此之前的字符a*b:b前方出现任意次数的a均可,包括0次+匹配至少1个在此之前的字符ab+:a后紧跟的b至少1次即可[]匹配[]方括号中任意单个字符 匹配[^]不在方括号中的内容 [ab]:存在a或b即可 ;[0-9]: 0到9任意数字 [^ab]:存在不是a或b的字符即可 {}匹配{n} n个前面的字符 匹配{n,m} n-m个前面的字符 a{1} :a; a{2}:aa;包含即可 a{1,2}:a或aa;a{1,3}:a,aa,aaa;包含即可 ?匹配前方字符,可有可无a?: a是否出现都可()将元素组合(a+[0-9])? : 括号内a和任意数字组合出现皆可,但结合? 表示括号内内容可有可无* 若有更好的解释或解释错误,请纠正我 二、示例 不同的开发语言环境,正则的关键字不一样。此处示例采用的为clickhouse,关键字为MATCH 函数用于在字符串中使用正则表达式进行匹配,语法是match(haystack, pattern)。如果是单纯的包含等操作可以用其他专门的语法类似like、position等替代,以下操作多为上述元素组合使用。 1、匹配字符中是否包含数字 -- 是否包含任意数字 select match('test.adb', '[0-9]'); -- 返回0 select match('t1est.a9db', '[0-9]'); -- 返回12、是否所有字符都是数字 -- 匹配是否全部由数字组成 select match('1623234', '^[0-9]*$') --返回1 select match('1623234', '^[0-9]+$') --返回1* 和 + 在此处的含义结合元素含义去理解,不解可以咨询我。 3、是否是数值 注意数值有整型和浮点型,同时也有正负。 select match('2.2', '^-?[0-9]+(\.[0-9])?$') -- 返回1 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |