카테고리:

문자열 함수(정규식)

REGEXP_COUNT

문자열에서 패턴이 발생하는 횟수를 반환합니다.

문자열 함수(정규식) 도 참조하십시오.

구문

REGEXP_COUNT( <subject> , <pattern> [ , <position> , <parameters> ] )
Copy

인자

필수:

subject

일치 항목을 검색할 문자열입니다.

pattern

일치할 패턴입니다.

패턴 지정에 관한 지침은 문자열 함수(정규식) 섹션을 참조하십시오.

선택 사항:

position

함수가 일치 항목 검색을 시작하는 문자열 시작 부분의 문자 수입니다.

기본값: 1 (일치 항목 검색은 왼쪽의 첫 번째 문자에서 시작됨)

parameters

일치 항목을 검색하는 데 사용되는 매개 변수를 지정하는 하나 이상의 문자로 된 문자열입니다. 지원되는 값:

매개 변수

설명

c

대/소문자를 구분하는 일치

i

대/소문자를 구분하지 않는 일치

m

여러 줄 모드

e

하위 일치 항목 추출

s

POSIX 와일드카드 문자 .\n 과 일치합니다.

기본값: c

자세한 내용은 정규식에 매개 변수 지정하기 섹션을 참조하십시오.

반환

NUMBER 형식의 값을 반환합니다. 인자가 NULL인 경우 NULL을 반환합니다.

사용법 노트

정규식 함수에 대한 일반적인 사용법 노트 섹션을 참조하십시오.

데이터 정렬 세부 정보

Arguments with collation specifications are currently not supported.

다음 예는 was 단어의 발생 횟수를 계산합니다. 문자열의 첫 번째 문자에서 일치가 시작됩니다.

SELECT REGEXP_COUNT('It was the best of times, it was the worst of times',
                    '\\bwas\\b',
                    1) AS result;
Copy
+--------+
| RESULT |
|--------|
|      2 |
+--------+

다음 예는 중복 발생을 보여줍니다. 테이블을 만들고 데이터를 삽입합니다.

CREATE OR REPLACE TABLE overlap (id NUMBER, a STRING);
INSERT INTO overlap VALUES (1,',abc,def,ghi,jkl,');
INSERT INTO overlap VALUES (2,',abc,,def,,ghi,,jkl,');

SELECT * FROM overlap;
Copy
+----+----------------------+
| ID | A                    |
|----+----------------------|
|  1 | ,abc,def,ghi,jkl,    |
|  2 | ,abc,,def,,ghi,,jkl, |
+----+----------------------+

REGEXP_COUNT를 사용하여 각 행에서 구두점 뒤에 숫자와 문자가 오고, 그 뒤에 구두점이 오는 패턴이 발견되는 횟수를 세는 쿼리를 실행합니다.

SELECT id,
       REGEXP_COUNT(a,
                    '[[:punct:]][[:alnum:]]+[[:punct:]]',
                    1,
                    'i') AS result
  FROM overlap;
Copy
+----+--------+
| ID | RESULT |
|----+--------|
|  1 |      2 |
|  2 |      4 |
+----+--------+