POSIX BRE( Basic Regular Expression )

  1. ^
  2. $
  3. .
  4. *
  5. \
  6. (
  7. {
  8. [



2. $ ( Dollar )

구문 ( Syntax )

<dollar> ::= $
  • 사용 예
    <dollar>
    
    <pattern_expr><dollar>
    
    <dollar><pattern_expr>
    
    <pattern_expr><dollar><pattern_expr>
    

설명 ( Description )

  • source string의 끝을 의미한다.
  • 일반적으로 <dollar> 앞에 <pattern_expr>을 입력하여 사용한다.
    • ex) abc$
  • <dollar> 만 있는 경우, source string의 맨 뒤를 매칭한다. ( zero-length match )
    • ex) $
  • <dollar> 뒤에 <pattern_expr>이 있는 경우, 어떤 source string과도 매칭하지 않는다.
    • ex) $a
    • 예외
      • ex) ab$c* <=> ab$
      • ex) $c* <=> $


별다른 옵션이 없다면 source string의 끝지점을 매칭하지만, 

multiline mode 옵션이 주어지면 source string의 각 라인 끝지점들을 매칭한다. ( 이 경우, 라인의 기준은 ASCII(10)인 Line Feed(\n)이다. )


예제 ( Examples )

SQL> SELECT REGEXP_SUBSTR( 'abc', '$' ) AS RESULT FROM DUAL;

RESULT
--------------------
NULL

SQL> SELECT REGEXP_COUNT( 'abc', '$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_SUBSTR( 'abc', '$c' ) AS RESULT FROM DUAL;

RESULT
--------------------
NULL

SQL> SELECT REGEXP_COUNT( 'abc', '$c' ) AS RESULT FROM DUAL;

    RESULT
----------
         0

SQL> SELECT REGEXP_SUBSTR( 'abc', '.$c*' ) AS RESULT FROM DUAL;

RESULT
--------------------
c

SQL> SELECT REGEXP_SUBSTR( 'abc', 'c$' ) AS RESULT FROM DUAL;

RESULT
--------------------
c

SQL> SELECT REGEXP_SUBSTR( 'abc', '(.*)$' ) AS RESULT FROM DUAL;

RESULT
--------------------
abc

SQL> SELECT REGEXP_SUBSTR( 'abc'||CHR(10)||'def', '.$' ) AS RESULT FROM DUAL;

RESULT
--------------------
f

SQL> SELECT REGEXP_COUNT( 'abc'||CHR(10)||'def', '.$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_SUBSTR( 'abc'||CHR(10)||'def', '.$', 1, 1, 'm' ) AS RESULT FROM DUAL;

RESULT
--------------------
c

SQL> SELECT REGEXP_SUBSTR( 'abc'||CHR(10)||'def', '.$', 1, 2, 'm' ) AS RESULT FROM DUAL;

RESULT
--------------------
f

SQL> SELECT REGEXP_COUNT( 'abc'||CHR(10)||'def', '$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         2

SQL> SELECT REGEXP_SUBSTR( 'a', '.$' ) AS RESULT FROM DUAL;

RESULT
--------------------
a

SQL> SELECT REGEXP_COUNT( 'a', '.$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_SUBSTR( 'a'||CHR(10), '.$' ) AS RESULT FROM DUAL;

RESULT
--------------------
a

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10), '.$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_SUBSTR( 'a'||CHR(10)||CHR(10), '.$' ) AS RESULT FROM DUAL;

RESULT
--------------------
NULL

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10), '.$' ) AS RESULT FROM DUAL;

    RESULT
----------
         0

SQL> SELECT REGEXP_SUBSTR( 'a'||CHR(10)||CHR(10), '.$', 1, 1, 'm' ) AS RESULT FROM DUAL;

RESULT
--------------------
a

SQL> SELECT REGEXP_SUBSTR( 'a'||CHR(10)||CHR(10), '.$', 1, 2, 'm' ) AS RESULT FROM DUAL;

RESULT
--------------------
NULL

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10), '.$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a', '.$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10), '.$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10), '.$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a', '$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10), '$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10), '$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10)||CHR(10), '$' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a', '$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10), '$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         1

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10), '$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         2

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10)||CHR(10), '$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         3

SQL> SELECT REGEXP_COUNT( 'a'||CHR(10)||CHR(10)||CHR(10)||CHR(10), '$', 1, 'm' ) AS RESULT FROM DUAL;

    RESULT
----------
         4


블로그 이미지

차트

소소한 일상 C코드 DB 항상 행복하게^-^★

,