承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

SQL开发知识:Oracle数据库正则表达式使用处景代码实例

管理员 2023-09-06 08:02:14 互联网圈 0 ℃ 0 评论 7926字 收藏

SQL开发知识:Oracle数据库正则表达式使用处景代码实例

正则表达式:

不管是在前端或者后台正则表达式都是一个相当重要的知识点,例如判断一个手机号码输入会不会正确,如果使用Java、C或其他语言进行字符串进行判断,或许写几十行代码都不一定能解决,而且漏洞百出,而使用正则表达式,一行代码则可轻易解决,下面是举例说明正则表达式的用法:

1: \d 代表一个(阿拉伯数字) 任意数字

例如:判断用户输入的会不会为11位数字(固然手机号码是不能这么简答的表达,只是解释一下\d的用法)

 select ‘ok’
 from dual
 where regexp_like(‘18812345678′,’\d\d\d\d\d\d\d\d\d\d\d’)

2: . 代表一个(任意字母) 任意字母

  这里需要注意的是,如果输入的数字确切需要字母 . 的话,不能直接输 . 要转换一下格式,输入 \. 便可,这个需要注意。

3: [[:number:]] 一个任意数字(可使十六进制)

这个用的其实不多,如果现实十六进制,可使用以下方式便可

 select ‘ok’
 from dual
 where regexp_like(‘str’,'[0⑼a-fA-F]’)

4: [[:alpha:]] 一个任意大小写字母

5: [ ] 匹配到方括号内的其中一个字母

方括号中只能匹配到其中的任意一个字母,或是7 或是8或是9,只能是1个

 select ‘ok’
 from dual
 where regexp_like(‘8′,'[379]’)

例以下面的就是ASCII码中,数字3到ASCII码 小写的 a 其中的任意一个字符的匹配

select ‘ok’
from dual
where regexp_like(‘9′,'[3-a]’)  

固然如果是12345678这样的连续的数字可以这么写

 select ‘ok’
 from dual
 where regexp_like(‘str’,'[1⑻]’)

如果是要匹配 12345678 中的其中一个,或是字母 a也行,就能够这么写,a可以写到前边,也能够写到后面,这并没有所谓,由于只匹配一个而已

 select ‘ok’
 from dual
 where regexp_like(‘str’,'[a1⑻]’)

6: () 单词匹配

单词匹配,一般用竖线隔开,例如:小明喜欢吃苹果或香蕉或樱桃,此时就应当是用单词的匹配,在圆括号中任选一个。

 select ‘ok’
 from dual
 where regexp_like(‘小明喜欢吃苹果.’,’小明喜欢吃(苹果|香蕉|樱桃)\.’)

7:量词:来修饰左边的元素的数量,三个量词

  7.1: * 0到任意多个
  7.2: + 1到任意多个
  7.3: ? 0或1个

{N},代表左边有N个数据,比如上面的手机号码验证,\d 需要输入9个,这里就能够使用{N}来简化一下,\d是数字,然后\d{10},代表这里有10个数字

 select ‘ok’
 from dual
 where regexp_like(‘str’,’1\d{10}’)

如果是:{2,10} 代表左边的东西 最少有2个,最多有10个

9:引导符: ^ :在正则表达式最前方使用 ^ ,代表只能依照表达式的格式去匹配

10:结束符: $ :在正则表达式最后面使用 ¥ ,代表只能依照表达式的格式去匹配

出现前导符的缘由:由于正则表达式只匹配”表达式匹配条件的内容”,以外的不匹配

11:\n 换行

正则表达式:

不管是在前端或者后台正则表达式都是一个相当重要的知识点,例如判断一个手机号码输入会不会正确,如果使用Java、C或其他语言进行字符串进行判断,或许写几十行代码都不一定能解决,而且漏洞百出,而使用正则表达式,一行代码则可轻易解决,下面是举例说明正则表达式的用法:

1: \d 代表一个(阿拉伯数字) 任意数字

例如:判断用户输入的会不会为11位数字(固然手机号码是不能这么简答的表达,只是解释一下\d的用法)

 select ‘ok’
 from dual
 where regexp_like(‘18812345678′,’\d\d\d\d\d\d\d\d\d\d\d’)

2: . 代表一个(任意字母) 任意字母

  这里需要注意的是,如果输入的数字确切需要字母 . 的话,不能直接输 . 要转换一下格式,输入 \. 便可,这个需要注意。

3: [[:number:]] 一个任意数字(可使十六进制)

这个用的其实不多,如果现实十六进制,可使用以下方式便可

 select ‘ok’
 from dual
 where regexp_like(‘str’,'[0⑼a-fA-F]’)

4: [[:alpha:]] 一个任意大小写字母

5: [ ] 匹配到方括号内的其中一个字母

方括号中只能匹配到其中的任意一个字母,或是7 或是8或是9,只能是1个

 select ‘ok’
 from dual
 where regexp_like(‘8′,'[379]’)

例以下面的就是ASCII码中,数字3到ASCII码 小写的 a 其中的任意一个字符的匹配

select ‘ok’
from dual
where regexp_like(‘9′,'[3-a]’)  

固然如果是12345678这样的连续的数字可以这么写

 select ‘ok’
 from dual
 where regexp_like(‘str’,'[1⑻]’)

如果是要匹配 12345678 中的其中一个,或是字母 a也行,就能够这么写,a可以写到前边,也能够写到后面,这并没有所谓,由于只匹配一个而已

 select ‘ok’
 from dual
 where regexp_like(‘str’,'[a1⑻]’)

6: () 单词匹配

单词匹配,一般用竖线隔开,例如:小明喜欢吃苹果或香蕉或樱桃,此时就应当是用单词的匹配,在圆括号中任选一个。

 select ‘ok’
 from dual
 where regexp_like(‘小明喜欢吃苹果.’,’小明喜欢吃(苹果|香蕉|樱桃)\.’)

7:量词:来修饰左边的元素的数量,三个量词

  7.1: * 0到任意多个
  7.2: + 1到任意多个
  7.3: ? 0或1个

{N},代表左边有N个数据,比如上面的手机号码验证,\d 需要输入9个,这里就能够使用{N}来简化一下,\d是数字,然后\d{10},代表这里有10个数字

 select ‘ok’
 from dual
 where regexp_like(‘str’,’1\d{10}’)

如果是:{2,10} 代表左边的东西 最少有2个,最多有10个

9:引导符: ^ :在正则表达式最前方使用 ^ ,代表只能依照表达式的格式去匹配

10:结束符: $ :在正则表达式最后面使用 ¥ ,代表只能依照表达式的格式去匹配

出现前导符的缘由:由于正则表达式只匹配”表达式匹配条件的内容”,以外的不匹配

11:\n 换行

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

文章来源:丸子建站

文章标题:SQL开发知识:Oracle数据库正则表达式使用处景代码实例

https://www.wanzijz.com/view/76976.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信