[REGEX] :: POSIX ERE Meta Character '' 10. ? ( question mark ) ''
IT/Regular Expression 2019. 10. 17. 16:31POSIX ERE( Extended Regular Expression )
- +
- ?
- |
10. ? ( Question Mark )
구문 ( Syntax )
<question_mark> ::= ?
- 사용 예
<pattern_expr><question_mark>
설명 ( Description )
- 0 or 1
- 수량자(quantifier)로, <question_mark> 앞의 <pattern_expr>이 없거나 하나 있음을 의미한다.
- ex) a? => , a
- <question_mark>만 있는 경우
- ex) ?
- 결과
- Oracle : zero-length match
- PostgreSQL, MySQL, MariaDB : error 처리
- zero-length match가 발생할 수 있다.
예제 ( Examples )
SQL> SELECT REGEXP_SUBSTR( 'god', 'goo?d' ) AS RESULT FROM DUAL; RESULT -------------------- god SQL> SELECT REGEXP_SUBSTR( 'good', 'goo?d' ) AS RESULT FROM DUAL; RESULT -------------------- good SQL> SELECT REGEXP_SUBSTR( 'goood', 'goo?d' ) AS RESULT FROM DUAL; RESULT -------------------- NULL SQL> SELECT REGEXP_SUBSTR( 'ababc', '(ab)?' ) AS RESULT FROM DUAL; RESULT -------------------- ab SQL> SELECT REGEXP_SUBSTR( 'knight', '.?night' ) AS RESULT FROM DUAL; RESULT -------------------- knight SQL> SELECT REGEXP_SUBSTR( 'abc', 'z?' ) AS RESULT FROM DUAL; RESULT -------------------- NULL SQL> SELECT REGEXP_COUNT( 'abc', 'z?' ) AS RESULT FROM DUAL; RESULT ---------- 4
- <question_mark>만 있는 경우
< Oracle > SQL> SELECT REGEXP_SUBSTR( 'ab', '?' ) AS RESULT FROM DUAL; RESULT ------------------------------ NULL SQL> SELECT REGEXP_COUNT( 'ab', '?' ) AS RESULT FROM DUAL; RESULT ---------- 3 < PostgreSQL > postgres=# SELECT REGEXP_MATCHES( 'ab', '?', 'g' ) AS RESULT; ERROR: invalid regular expression: quantifier operand invalid < MySQL > mysql> SELECT REGEXP_SUBSTR( 'ab', '?' ) AS RESULT; ERROR 3688 (HY000): Syntax error in regular expression on line 1, character 1. < MariaDB > MariaDB [test]> SELECT REGEXP_SUBSTR( 'ab', '?' ) AS RESULT; ERROR 1139 (42000): Got error 'nothing to repeat at offset 0' from regexp
'IT > Regular Expression' 카테고리의 다른 글
[REGEX] :: POSIX ERE Meta Character '' 11. | ( vertical bar ) '' (0) | 2019.10.17 |
---|---|
[REGEX] :: POSIX ERE Meta Character '' 9. + ( plus ) '' (0) | 2019.10.17 |
[REGEX] :: POSIX BRE Meta Character '' 8. [ ] ( bracket ) '' (0) | 2019.08.28 |
[REGEX] :: POSIX BRE Meta Character '' 7. { } ( brace ) '' (0) | 2019.08.28 |
[REGEX] :: POSIX BRE Meta Character '' 6. ( ) ( parenthesis ) '' (0) | 2019.07.16 |