REGEXP example01 a glance of REGEXP

1)REGEXP example01
1@@@@a glance of REGEXP
@@@
@@@<1>'*the*' => vague search all line.
@@@
[oracle@station78 ~]$ sqlplus / as sysdba;
SYS@ocp> CREATE TABLE t_regexp (chardata varchar2(50));
Table created.
SYS@ocp> INSERT INTO t_regexp VALUES('A theory concerning');
1 row created.
SYS@ocp> INSERT INTO t_regexp VALUES('the origin of the universe, is the Big');
1 row created.
SYS@ocp> INSERT INTO t_regexp VALUES('Bang.');
1 row created.
SYS@ocp> commit;
Commit complete.

@@@
@@@usage: regexp_like(column_name, condition)
SYS@ocp> SELECT * FROM t_regexp WHERE REGEXP_LIKE(chardata,'*the*');
CHARDATA
------------------------------------------------------------------
A theory concerning
the origin of the universe, is the Big


@@@
@@@<2>'^the' => the start of line.
@@@
regexp_like(search_string, pattern_string, match_parameter)
match_parameter:
  'i' case-insensitive matching
  'c' case-insensitive matching
  'm' allows the period '.' to match the new line character
  'n' allows the search_string to represent or contain multiple lines

@@@search the 'the' occurs only at the start of line.
SYS@ocp> SELECT * FROM t_regexp WHERE REGEXP_LIKE(chardata,'^the*');
CHARDATA
--------------------------------------------------
the origin of the universe, is the Big


@@@
@@@<3>[Yy] {1}B.{1}g single character.
@@@
Note:
    combine the use of the '.' to match any single character with '{}' repetition
  catability, here I find a single character between 'B' and 'g' and exactly two
  characters between the 'B' and 'g'.
     using [abcd] match an any single characters.
SYS@ocp> SELECT * FROM t_regexp WHERE REGEXP_LIKE(chardata,'B.g');
CHARDATA
------------------------------------------------------------------------------
the origin of the universe, is the Big

SYS@ocp> SELECT * FROM t_regexp WHERE REGEXP_LIKE(chardata,'B.{1}g');
CHARDATA
-------------------------------------------------------------------------------
the origin of the universe, is the Big

SYS@ocp> SELECT * FROM t_regexp WHERE REGEXP_LIKE(chardata,'B.{2}g');
CHARDATA
--------------------------------------------------------------------------------
Bang.

SYS@ocp> SELECT * FROM t_regexp WHERE REGEXP_LIKE(chardata,'[abcd]');
CHARDATA
----------------------------------------------------------------------------------------------------
A theory concerning
Bang.


@@@
@@@<4>regexp_instr(), regexp_substr()
@@@
SYS@ocp> SELECT regexp_instr(chardata,'B.{1}g')
2> FROM t_regexp
3> WHERE regexp_like(chardata,'B.{1}g');
REGEXP_INSTR(CHARDATA,'B.{1}G')
-------------------------------
                 36

SYS@ocp> SELECT regexp_instr(chardata,'B.{1}g') FROM t_regexp;
REGEXP_INSTR(CHARDATA,'B.{1}G')
-------------------------------
                  0
                 36
                  0

SYS@ocp> SELECT regexp_substr(chardata,'B.{2}g')
2> FROM t_regexp
3> WHERE regexp_like(chardata,'B.{2}g');
REGEXP_SUBSTR(CHARDATA,'B.{2}G')
--------------------------------------------------------------------------------------
Bang


@@@
@@@<5>regexp_replace()
@@@
SYS@ocp> INSERT INTO t_regexp VALUES('123-456-7890');
1 row created.

SYS@ocp> INSERT INTO t_regexp VALUES('(111)-222-3333');
1 row created.

SYS@ocp> INSERT INTO t_regexp VALUES('333-444-5555');
1 row created.

SYS@ocp> commit;
Commit complete.

SYS@ocp> ed
  1  SELECT regexp_replace(chardata,
  2               '(\()(.*)(\))-(.*)-(.*)',
  3               '\2-\4-5')
  4  AS transformed_string
  5* FROM t_regexp
SYS@ocp> /

TRANSFORMED_STRING
----------------------------------------------------------------------------------------------------
A theory concerning
the origin of the universe, is the Big
Bang.
123-456-7890
111-222-5
333-444-5555

6 rows selected.


@@@
@@@<6>continue...
@@@

你可能感兴趣的:(RegExp)