# MatchRegEx - 스크립트 및 차트 함수

MatchRegEx()는 입력 문자열을 하나 이상의 지정된 정규 표현식 패턴과 비교하고 일치하는 정규 표현식 패턴의 숫자 위치를 반환합니다. 일치하는 항목이 없으면 함수는 0을 반환합니다. 이 함수는 정확한 일치 항목만 찾습니다.

이 함수는 대/소문자를 구분하는 정규식 연산을 수행합니다. 또는 MatchRegExI() 변형을 사용하여 대/소문자를 구분하지 않는 정규식 작업을 수행할 수 있습니다.

구문:

MatchRegEx (text, regex1 [ , regex2,...regexN])

반환 데이터 유형: 정수

인수

| 인수 | 설명 |
| --- | --- |
| text | 하나 이상의 정규 표현식과 일치시킬 입력 문자열 텍스트. |
| regex | 입력 문자열과 일치시키려는 정규 표현식. 하나의 표현식에 여러 개의 정규 표현식을 지정할 수 있으며, 이후 인수로 구분하여 지정할 수 있습니다. |

함수 예

| 예제 | 결과 |
| --- | --- |
| `MatchRegEx('abc123','[a-z]','[0-9]','[a-z]+[0-9]+','.+')` | `3`을 반환합니다. 세 번째 정규식 패턴은 데이터와 일치하는 첫 번째 패턴입니다. |
| `MatchRegEx('ABC','[abc]+','[123]')` | `0`을 반환합니다(MatchRegEx()은 대/소문자를 구분함). |
| `MatchRegExI('ABC','[abc]+','[123]')` | `1`을 반환합니다. 대/소문자를 구분하지 않는 함수 변형인 MatchRegExI()이 사용됩니다. |

## 사용 시기

이 함수의 사용 사례는 다음과 같습니다.

* 서식 및 규정 준수 기준을 충족하는지 식별하기 위해 텍스트의 유효성을 검사하고 데이터 오류를 식별합니다.

* 텍스트 서식의 차이점을 식별합니다. 예를 들어, 전화번호 중 형식 A, 형식 B 등을 사용하는 번호가 몇 개인지 식별할 수 있습니다.

## 예 1 – 전화번호 형식을 분석하기 위한 스크립트 로드

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/MatchRegEx.htm)

#### 로드 스크립트 및 결과

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* 다양한 회사의 연락처 전화번호가 포함된 테이블 `BusinessContactInfo`. 전화번호는 10자리 NANP 전화번호입니다.

* 각 전화번호가 특정 전화번호 형식 중 하나와 일치하는지 평가하기 위한 계산 필드 `PhoneNumberFormat`.

확인하려는 세 가지 형식은 다음과 같습니다.(###) ###-####, ###-###-####, ##########.

로드 스크립트

```
BusinessContactInfo:

Load MatchRegEx(ContactInfo,'\({0,1}[0-9]{3}\) [0-9]{3}-[0-9]{4}', '[0-9]{3}-[0-9]{3}-[0-9]{4}', '[0-9]{10}') as PhoneNumberFormat,
* Inline `
ID	CompanyName	ContactInfo
1	Company A	(123) 456-7890
2	Company B	0123456790
3	Company C	234-567-8901
4	Company D	(024) 680-2456
5	Company E	(135) 791-3579
6	Company F	8901234567
7	Company G	235-235-2352
8	Company H	(555) (555) (5555)
9	Company I	2342342343
10	Company J	444-444-4444
` (delimiter is '\t');
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `CompanyName`

* `ContactInfo`

* `PhoneNumberFormat`

결과 테이블

| CompanyName | ContactInfo | PhoneNumberFormat |
| --- | --- | --- |
| Company A | (123) 456-7890 | 1 |
| Company B | 0123456790 | 3 |
| Company C | 234-567-8901 | 2 |
| Company D | (024) 680-2456 | 1 |
| Company E | (135) 791-3579 | 1 |
| Company F | 8901234567 | 3 |
| Company G | 235-235-2352 | 2 |
| Company H | (555) (555) (5555) | 0 |
| Company I | 2342342343 | 3 |
| Company J | 444-444-4444 | 2 |

예를 들어, 여기에서 각 전화번호 형식의 총 개수와 인식되는 형식이 없는 전화번호의 개수를 계산하는 KPI를 만들 수 있습니다.

각 형식의 발생 횟수를 계산하기 위한 집계 표현식의 예

| 서식 | 인스턴스 수 | 차트 표현식 |
| --- | --- | --- |
| (###) ###-#### | 3 | =Count({&lt;PhoneNumberFormat={'1'}&gt;} PhoneNumberFormat) |
| ###-###-#### | 3 | =Count({&lt;PhoneNumberFormat={'2'}&gt;} PhoneNumberFormat) |
| ########## | 3 | =Count({&lt;PhoneNumberFormat={'3'}&gt;} PhoneNumberFormat) |
| Unrecognized format | 1 | =Count({&lt;PhoneNumberFormat={'0'}&gt;} PhoneNumberFormat) |

## 예 2 – ISBN 형식을 식별하기 위한 차트 표현식

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/MatchRegEx.htm)

#### 차트 표현식 및 결과

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* 다양한 책의 ISBN 코드를 나열한 표 `Books`

이 데이터를 통해 정규식 패턴에 지정된 구문을 기준으로 각 ISBN 코드가 유효한 10자리 또는 13자리 코드인지 식별하려고 합니다.

로드 스크립트

```
Books:

Load * Inline [
Book
ISBN 123-3-1234-1234-0
ISBN 012-2-0123-0123-4
ISBN 000-1-0123-0123-2
ISBN 0-111-23456-7
ISBN 555-2-5555-5555-3
ISBN 222-4-2222-2222-2
ISBN 1-901-23456-8
ISBN 333-3-3333-3333-3
ISBN 555-1-5151-5151-3
ISBN 232-1-2323-2323-1
ISBN 2-444-44444-4
ISBN 888-0-9999-0000-0
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.

* `Book`

이 계산 차원을 추가하고 레이블 ISBN Format을 지정합니다.

```
=if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=1, '13-digit', 
	if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=2, '10-digit',
		'Invalid ISBN'))
```

결과 테이블

| Book | ISBN Format |
| --- | --- |
| ISBN 000-1-0123-0123-2 | 13-digit |
| ISBN 0-111-23456-7 | 10-digit |
| ISBN 1-901-23456-8 | 10-digit |
| ISBN 2-444-44444-4 | 10-digit |
| ISBN 012-2-0123-0123-4 | 13-digit |
| ISBN 123-3-1234-1234-0 | 13-digit |
| ISBN 222-4-2222-2222-2 | 13-digit |
| ISBN 232-1-2323-2323-1 | 13-digit |
| ISBN 333-3-3333-3333-3 | 13-digit |
| ISBN 555-1-5151-5151-3 | 13-digit |
| ISBN 555-2-5555-5555-3 | 13-digit |
| ISBN 888-0-9999-0000-0 | 13-digit |

## 자세한 정보

* [로드 스크립트 및 차트 표현식에서 정규 표현식 사용](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)