oracle中的正则表达式函数regexp_instr

一个oracle+PHP的查询的例子
本来我不用php了,可是还是有很多朋友问我,我就做了一个例子,具体函数请查手册
其实oracle的函数和别的也差不多,只不过它这里多了一个定义输出变量的过程,
如果学过pl/sql的人都知道的

另一个例子是:
select (’i love www.52oracle.com’,’o[[:alpha:]]{2}’,1,2,1) as r from
dual
这个例子的含义是在’i love
www.52oracle.com’这个字符串中匹配另一个模式,这个模式是以o开始,再包含两个字符的一个模式,因此这个模式可以是ove,也可是ora但是我们要求它匹配两次,因此这个SQL语句的结果是ora所在的位置,所在的什么位置呢?因为我们的return_option参数的值是1,即大于0,所以这的结果是16,也就单词oracle中a所在的位置。

  1. x  待匹配的字符串
  2. pattern 待匹配的模式
  3. start   开始匹配的位置,如果不指定默认为1
  4. 澳门新葡亰网站注册,occurrence  匹配的次数,如果不指定,默认为1
  5. return_option
     指定返回值的类型,如果该参数为0,则返回值为匹配位置的第一个字符,如果该值为非0则返回匹配值的最后一个位置。
  6. match_option 可以用这个参数来修改一些默认的配置设置。这个值与前面所说的regexp_like函数中的match_option参数的意义是一样的。

regexp_instr的原型如下:
regexp_instr(x,pattern[,start[,occurrence[,return_option[,match_option]]]])
这里每个参数分别含义如下: