oracle 可以用正则表达式吗?

2025-03-21 07:36:09
推荐回答(4个)
回答1:

--  正则表达式检索 REGEXP_LIKE  

-- 测试表

CREATE TABLE test_reg_like ( a varchar(20) );

INSERT INTO test_reg_like VALUES('ABC');
INSERT INTO test_reg_like VALUES('A12');
INSERT INTO test_reg_like VALUES('12a12');




3个参数
第一个是输入的字符串
第二个是正则表达式
第三个是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。




全部测试数据
SQL> SELECT * FROM test_reg_like;
A
----------------------------------------
ABC
A12
12a12

匹配字母A的
SQL> SELECT
  2    *
  3  FROM
  4    test_reg_like
  5  WHERE
  6    REGEXP_LIKE(a, 'A');
A
----------------------------------------
ABC
A12

匹配字母A的 (大小写不敏感)
SQL> SELECT
  2    *
  3  FROM
  4    test_reg_like
  5  WHERE
  6    REGEXP_LIKE(a, 'A', 'i');
A
----------------------------------------
ABC
A12
12a12

匹配字母A 后面跟1个或多个数字的 (大小写不敏感)
SQL> SELECT
  2    *
  3  FROM
  4    test_reg_like
  5  WHERE
  6    REGEXP_LIKE(a, 'A\d+', 'i');
A
----------------------------------------
A12
12a12

匹配字母A开头,数字结尾的
SQL> SELECT
  2    *
  3  FROM
  4    test_reg_like
  5  WHERE
  6    REGEXP_LIKE(a, '^A.+\d$');
A
----------------------------------------
A12

回答2:

可以的,我使用过。http://www.jb51.net/article/31227.htm

回答3:

可以使用呀

回答4:

必须可以.....