본문으로 건너뛰기
최종 수정: 에

MULTI_MATCH_ANY

설명​

<haystack>이 <patterns>에 있는 정규 표현식 중 하나와 일치하는지 확인합니다. 기본적으로 대소문자를 구분합니다. 0을 NULL 대신 반환하는 것은 인수 중 하나라도 NULL인 경우입니다.

구문​

MULTI_MATCH_ANY(<haystack>, <patterns>)

매개변수​

매개변수설명
<haystack>입력 문자열. 타입은 STRING입니다.
<patterns>정규 표현식. 타입은 ARRAY<STRING>입니다. 패턴 요소는 NULL이 아닌 문자열이어야 합니다.

반환 값​

TINYINT를 반환합니다. 정규 표현식 중 하나라도 일치하면 1, 그렇지 않으면 0을 반환합니다. 빈 패턴 배열에 대해서는 0을 반환하며, 인수 중 하나라도 NULL인 경우에도 같은 값을 반환합니다.

이 함수는 Hyperscan/VectorScan 정규 표현식 엔진을 사용합니다. 유효하지 않거나 지원되지 않는 패턴은 오류를 발생시킵니다. 상수 입력 문자열과 비상수 패턴 배열 컬럼을 함께 사용할 수 없으며, 이 조합을 사용하면 인수 오류가 발생합니다.

예제​

SELECT multi_match_any('Hello, World!', ['hello', '!', 'world']) AS matched;
1
SELECT multi_match_any('abc', ['A', 'bcd']) AS matched;
0

정규 표현식은 리터럴 부분 문자열 검색이 아닌 패턴 매칭을 수행합니다.

SELECT multi_match_any('abc123', ['[0-9]+', '^xyz']) AS matched;
1
SELECT multi_match_any('abc', CAST([] AS ARRAY<STRING>)) AS empty_patterns,
multi_match_any(CAST(NULL AS STRING), ['a']) AS null_text,
multi_match_any('abc', CAST(NULL AS ARRAY<STRING>)) AS null_patterns;
0    0    0

키워드​

MULTI_MATCH, MATCH, ANY