select * from M_D_D_IPADDRESSINFO t where REGEXP_LIKE(t.ip地址, '(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])')
sql正则表达式
REGEXP_LIKE 操作符
REGEXP_LIKE 操作符向您介绍在 Oracle 数据库 中使用时的正则表达式功能。表 5 列出了 REGEXP_LIKE 的语法。
REGEXP_INSTR 函数
这个函数返回一个模式的起始位置,因此它的功能非常类似于 INSTR 函数。新的 REGEXP_INSTR 函数的语法在表 6 中给出。这两个函数之间的主要区别是,REGEXP_INSTR 让您指定一种模式,而不是一个特定的搜索字符串;因而它提供了更多的功能。接下来的示例使用 REGEXP_INSTR 来返回字符串 Joe Smith, 10045 Berry Lane, San Joseph, CA 91234 中的五位邮政编码模式的起始位置。如果正则表达式被写为 [[:digit:]]{5},则您将得到门牌号的起始位置而不是邮政编码的,因为 10045 是第一次出现五个连续数字。因此,您必须将表达式定位到该行的末尾,正如 $ 元字符所示,该函数将显示邮政编码的起始位置,而不管门牌号的数字个数。
SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234',
'[[:digit:]]{5}$') AS rx_instr FROM dual
RX_INSTR
----------
45