正则表达式二

----===============Oracle正则表达式(regularexpression)=================
/*
在oracle里正则表达式有四个函数可用,分别是regexp_like、regexp_substr、regexp_instr 和regexp_replace。
这里在我们oracle 10g里灵活应用。
先来简单介绍一下正则表达式的内容,正则表达式是做为快速查询的文本内容的,在linux应用比较多,
首先,行的起始与结束 “^”这个字符是表示只查找行首的内容。“$”这个字符只查找行末的内容。
接下来是“^”还可以做为一个排除字符来使用。还是使用例子来做一个演示比较明了一下。
*/
这里我使用regexp_like这个函数来做,这样可以我们平时会使用的比较多。

select * from test_table where regexp_like(field_1,'^1234');
这个就是表示是以1234打头的字符串是不是有匹配的。这里和like的方式是一样的。

select * from test_table where regexp_like(field_1,'^[12]234');
这里多了一个[]这里做一个独立字符,这里表示是以1或2开始,并且接着是234这个里的字符就会是匹配的。

select * from test_table where regexp_like(field_1,'^(欧阳|李)小二');
这里我们就可以表达,这个查询一个姓是欧阳或李的,名字叫小二的字符串。
这里多了一个()这个是做一个为字符串的方式来写的与[]刚好是对应。这里还有一个“|”来表示或的意思。

select * from test_table where regexp_like(field_1,'^李[小]*二');
这里我们就可以查询李小二或是李二,再或者是李小小二,都可以,这里我们需要讲一下是[]后面带了一个*,
这个是表示0~无穷大 字符去匹配。这个[]我们还可以添加一个“+”来表示1~无穷大的字符去匹配,
也可以更加精准一些,在[]后面{1,3}这里就是表示1个到3个相同字符的匹配。还有一个“?”来说表示1或是0个。

select * from test_table where regexp_like(field_1,'李[^小]二');
这里我们可以查询到姓李的,但是第二字不是“小”这个字。

select * from test_table where regexp_like(field_1,'[0-9]');
这里是表示我们查询字符串含有0-9的数字的字符串。

select * from test_table where regexp_like(field_1,'[a-z]');
这里是表示我们查询字符串含有a-z的小写字母的字符串。

select * from test_table where regexp_like(field_1,'[A-z]');
这里是表示我们查询字符串含有A-z的所有字母的字符串。

select * from test_table where regexp_like(name,'[[:alpha:]]');
这里是表示查询匹配任意字母,也包括中文字。

select * from test_table where regexp_like(name,'[[:alnum:]]');
这里是表示查询匹配任意字母和数字。

select * from test_table where regexp_like(name,'[[:digit:]]');
这里是表示查询匹配任意数字。

Select * from test_table Where regexp_like(name,’of’,’i’);
这里就是of不区分大小写。

Select * from test_table Where regexp_like(name,’^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$’);
这样我们可以查询是不是ip格式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值