적용 대상: Canvas 앱
Copilot Studio
모델 기반 앱
Power Platform CLI
Dataverse 함수
Power Pages
일치 여부를 테스트하거나 패턴에 따라 텍스트 문자열의 일부를 추출합니다.
설명
이 함수는 IsMatch 텍스트 문자열이 일반 문자, 미리 정의된 패턴 또는 정규식을 구성할 수 있는 패턴과 일치하는지 테스트합니다. 및 MatchAll 함수는 Match 하위 매칭을 포함하여 일치하는 항목을 반환합니다.
텍스트 입력 컨트롤에 입력한 사용자의 유효성을 검사하는 데 사용합니다IsMatch. 예를 들어 결과가 데이터 원본에 저장되기 전에 사용자가 유효한 전자 메일 주소를 입력했는지 확인합니다. 항목이 조건과 일치하지 않는 경우 사용자에게 항목을 수정하라는 메시지를 표시하는 다른 컨트롤을 추가합니다.
패턴과 일치하는 첫 번째 텍스트 문자열을 추출하고 MatchAll 일치하는 모든 텍스트 문자열을 추출하는 데 사용합니다Match. 하위 매트를 추출하여 복합 문자열을 구문 분석합니다.
Match 는 찾은 첫 번째 일치 항목에 대한 정보 레코드를 반환하고 MatchAll 찾은 모든 일치 항목에 대한 레코드 테이블을 반환합니다. 레코드에는 다음이 포함됩니다.
| Column | Type | 설명 |
|---|---|---|
| 명명된 하위 일치 또는 하위 일치들 | 문자 | 명명된 각 하위 일치에는 고유한 열이 있습니다. 를 사용하여 명명된 하위 일치를 만듭니다 (?<이름>... ) 을 정규식으로 표시합니다. 명명된 하위 일치의 이름이 미리 정의된 열 중 하나와 동일한 경우 하위 일치가 우선적으로 적용되고 경고가 생성됩니다. 이 경고를 방지하려면 하위 일치의 이름을 바꿉니다. |
| 풀매치 | 문자 | 일치한 모든 텍스트 문자열. |
| 스타트매치 | 번호 | 입력 텍스트 문자열 내에서 일치의 시작 위치입니다. 문자열의 첫 번째 문자는 1을 반환합니다. |
| SubMatches는 MatchOptions.NumberedSubMatches 가 사용되는 경우에만 사용됩니다. | 단일 열의 텍스트 테이블(열 Value) | 정규식에 표시되는 순서대로 번호가 매겨진 하위 매칭의 테이블입니다. 일반적으로 명명된 하위 매트는 작업하기 쉽고 권장됩니다. ForAll 함수 또는 Index 함수를 사용하여 개별 하위 일치를 사용합니다. 정규식에 하위 매트가 정의되지 않은 경우 이 테이블은 있지만 비어 있습니다. |
이 함수들은 MatchOptions를 지원합니다. 기본적으로:
- 이 함수는 대소문자를 구분합니다. MatchOptions.IgnoreCase를 사용해 대소문자 일치를 수행합니다.
- IsMatch 는 전체 텍스트 문자열(MatchOption 완료 ) Match 과 일치하고 MatchAll 텍스트 문자열의 아무 곳이나 일치하는 항목을 검색합니다(MatchOption 포함 ). Complete, Contains, BeginsWith, EndsWith를 시나리오에 적절히 사용할 수 있습니다.
IsMatch 는 텍스트 문자열이 패턴과 일치하면 true 를 반환하고 그렇지 않으면 false 를 반환합니다. Match 는 IsBlank 함수를 사용하여 테스트할 수 있는 일치 항목이 없으면 공백을 반환합니다. MatchAll 는 IsEmpty 함수를 사용하여 테스트할 수 있는 일치하는 항목이 없으면 빈 테이블을 반환합니다.
텍스트 문자열을 분할하는 데 사용하는 MatchAll 경우 더 간단하고 빠른 Split 함수를 사용하는 것이 좋습니다.
패턴
이러한 함수를 사용하는 핵심은 일치시킬 패턴을 설명하는 것에 있습니다. 다음의 조합으로 텍스트 문자열에서 패턴을 설명합니다.
- "abc" 또는 "123"과 같은 일반 문자
- Letter, MultipleDigits 또는 Email과 같은 미리 정의된 패턴. 열거형은 Match 이러한 패턴을 정의합니다.
- "\d+\s+\d+" 또는 "[a-z]+"와 같은 정규식 코드.
문자열 연결 연산자를 사용하여 이러한 요소를 결합합니다. 예를 들어, "abc" & Digit & "\s+"는 "a", "b" 및 "c", 그 뒤에 0~9의 숫자, 그 뒤에 최소 하나의 공백 문자가 오는 문자와 일치하는 유효한 패턴입니다.
일반 문자
가장 간단한 패턴은 정확히 일치하는 일반 문자 시퀀스입니다.
예를 들어 함수와 함께 IsMatch 사용할 경우 문자열 "Hello"는 패턴 "Hello" 와 정확히 일치합니다. 똑같아야 합니다. 문자열 "hello!" 이 끝의 느낌표 때문에 패턴과 일치하지 않으며 문자 "h"에 대한 대/소문자 구분이 잘못되었기 때문입니다. (이 동작을 수정하는 방법에 대한 옵션을 참조 Match 하세요.)
패턴 언어에서 문자 . ? * + ( ) [ ] ^ $ | \ 는 특수한 용도로 예약됩니다. 이러한 문자를 사용하려면 문자 \ 앞에 (백슬래시)를 접두사로 지정하여 문자를 문자 그대로 가져와야 함을 나타내거나 미리 정의된 패턴 중 하나를 사용합니다. 예를 들어 물음표 앞에 백슬래시를 사용하여 문자열 "Hello?""Hello\\?" 을 일치시킬 수 있습니다.
미리 정의된 패턴
미리 정의된 패턴은 문자 집합 중 하나 또는 여러 문자의 시퀀스와 일치시키는 간단한 방법을 제공합니다. 문자열 연결 연산자 >를 사용하여 고유한 텍스트 문자열을 열거형의 Match 멤버와 결합합니다.
| Match enum | 설명 | 정규식 |
|---|---|---|
| 어느 | 문자와 일치합니다. | . |
| 콤마 | 쉼표와 일치합니다 ,. |
, |
| 손가락 | 단일 숫자("0"부터 "9")와 일치합니다. | \d |
| "at" 기호("@")를 포함하는 이메일 주소 및 점(".")을 포함하는 도메인 이름과 일치합니다. | 참고 참조 | |
| 하이픈 | 하이픈과 일치합니다. |
-
참고 참조 |
| 왼쪽파렌 | 왼쪽 괄호와 일치합니다 (. |
\( |
| 편지 | 문자와 일치합니다. | \p{L} |
| 여러자리 | 하나 이상의 숫자와 일치합니다. | \d+ |
| 여러 글자 | 하나 이상의 문자와 일치합니다. | \p{L}+ |
| MultipleNonSpaces | 공백(공백, 탭, 줄 바꿈)을 추가하지 않는 하나 이상의 문자와 일치합니다. | \S+ |
| 다중 공간 | 공백(공백, 탭, 줄 바꿈)을 추가하는 하나 이상의 문자와 일치합니다. | \s+ |
| 비공간 | 공백을 추가하지 않는 단일 문자와 일치합니다. | \S |
| 선택 숫자 | 0개, 1개 또는 더 많은 숫자와 일치합니다. | \d* |
| 선택 문자 | 0개, 1개 또는 더 많은 문자와 일치합니다. | \p{L}* |
| 선택사항비공백 | 공백을 추가하지 않는 0개, 1개 또는 더 많은 문자와 일치합니다. | \S* |
| 선택 공간 | 공백을 추가하는 0개, 1개 또는 더 많은 문자와 일치합니다. | \s* |
| 기간 | 마침표 또는 점 .과 일치합니다. |
\. |
| 오른쪽 부모 | 오른쪽 괄호와 일치합니다 ). |
\) |
| 공간 | 공백을 추가하는 문자와 일치합니다. | \s |
| 꼬리표 | 탭 문자와 일치합니다. | \t |
예를 들어 패턴 "A" 및 MultipleDigits는 문자 "A"와 하나 이상의 숫자를 찾습니다.
Power Apps는 다른 정의를 Match사용합니다. EMail 및 Match. 하이픈. 호스트에서 사용하는 정규식을 확인하려면 평가 Text( Match.Email ) 합니다.
정규식
이러한 함수에서 사용하는 패턴을 정규식이라고 합니다. Power Fx의 특정 정규식 언어는 Power Fx의 정규식에 자세히 설명되어 있습니다.
정규식은 강력하고 다양한 용도로 사용됩니다. 문장 부호의 임의 시퀀스처럼 보일 수도 있습니다. 이 문서에서는 정규 표현식의 모든 측면을 설명하지는 않지만, 풍부한 정보, 튜토리얼, 도구를 온라인에서 이용할 수 있습니다.
정규 표현식은 오랜 역사를 가지고 있으며 다양한 프로그래밍 언어에서 사용할 수 있습니다. 각 프로그래밍 언어에는 고유한 정규 표현식 방언이 있으며 표준은 거의 없습니다. 모든 Power Fx 구현에서 동일한 정규식이 동일한 결과를 제공하도록 노력합니다. JavaScript와 .NET은 서로 큰 차이점이 있으므로 호환성을 달성하기가 쉽지 않습니다. Power Fx 다양한 플랫폼에서의 실행을 수용하기 위해 Power Fx 정규식은 업계에서 널리 지원되는 기능의 하위 집합으로 제한됩니다.
따라서 다른 환경에서 작동할 수 있는 일부 정규식이 차단되거나 Power Fx에서 조정이 필요할 수 있습니다. 지원되지 않는 기능이 발견되면 작성 시간 오류가 보고됩니다. 이는 정규식 및 옵션이 동적이 아닌 작성 시간 상수여야 하는 이유 중 하나입니다(예: 변수에 제공됨).
비고
Power Apps는 제한 사항이 적지만 기능이 적은 이전 버전의 Power Fx 정규식을 사용합니다. MatchOptions.DotAll 및 MatchOptions.FreeSpacing 을 사용할 수 Match없으며 . 전자 메일 및 Match. 하이픈 은 다릅니다. 유니코드 서로게이트 쌍은 단일 문자로 처리되지 않습니다. MatchOptions.NumberedSubMatches 가 기본값입니다. 여기에 설명된 정규식 버전은 곧 "Power Fx V1.0 호환성" 스위치로 Power Apps에서 사용할 수 있습니다.
다음은 숫자를 구문 분석하는 복잡성을 키우는 정규식의 몇 가지 기본 요소입니다.
| 특징 | Example | 설명 |
|---|---|---|
| 미리 정의된 문자 클래스 | \d |
이 정규식은 다음과 같은 1단일 숫자와 일치합니다. 문자 클래스는 문자 집합과 일치하며 \d 유니코드 문자 범주 "Nd"에 정의된 숫자와 표준 숫자를 09 일치시킵니다. 문자 및 숫자 \w 와 줄다리기 포함 공백에 대한 문자 클래스가 \s있습니다. 대문 \D 자로 된 역 문자 클래스도 있습니다. 그렇지 않은 모든 \d 클래스와 일치합니다. |
| 하나 이상 | \d+ |
이 정규식은 와 같은 123하나 이상의 숫자와 일치합니다.
+ 후 요소는 마지막 요소의 "하나 이상"을 나타냅니다. |
| 0 또는 1 | \+?\d |
이 정규식은 선택적 ? 요소는 "선택 사항이며 0번 또는 1번 발생할 수 있습니다"라고 말합니다. 앞에 + 백슬래시를 사용하여 "하나 이상의" 사용법이 아닌 리터럴 문자로 구분합니다. |
| 그룹화 및 변경 | (-|\+)?\d+ |
이 정규식은 기호나 +기호, 선택적으로 일련의 숫자(예: -, -123및 )와 +123일치 123 합니다. 여기서는 종종 함께 사용되는 두 가지 개념을 소개합니다. 첫째, 동작을 위해 요소 집합으로 그룹화되는 괄호가 ? 있습니다. 둘째, 우리는 | "이것 또는 그"라고 말합니다. |
| 사용자 지정 문자 클래스 | (-|\+)?\d+[eE][\-\+]?\d+ |
이 정규식은 일치하는 +123e-12두 개의 문자 클래스가 있는 혼합에 지수를 추가합니다. 문자 클래스는 좀 더 간결한 형태로 "이러한 항목 중 하나와 일치"를 제공하는 교대와 같습니다 | .
+
- 와 마찬가지로 정규식 문자 클래스에는 특별한 의미가 있으므로 이스케이프해야 합니다. |
| 0개 이상 | (-|\+)?\d+\.?\d*[eE][\-\+]?\d+ |
이 정규식은 숫자의 정수 부분(예:-123.456e-89-123.E+32
\d 소수점 뒤의 소수 자릿수에 * 대해 "0회 이상"이라는 수량자가 있습니다.. |
| 캡처 그룹 | (?<number>(-|\+)?\d+\.?\d*)[eE](?<exponent>[\-\+]?\d+) |
마지막으로, 캡처 그룹 및 에 대한 number 캡처 그룹을 추가합니다 exponent. 정규식은 전체 문자열과 일치할 수 있습니다. 이 경우 수식에서 사용할 부분(이 경우 앞에 있는 부분 또는e) 및 그 뒤의 파트 E 를 추출할 수도 있습니다. |
이러한 예제는 정규식이 수행할 수 있는 작업의 작은 맛만 제공합니다. ID 번호, 전자 메일 주소, 전화 번호, 날짜 및 시간의 유효성을 검사하고 모든 종류의 텍스트 파일에서 정보를 추출하는 데 일반적으로 사용됩니다. Power Fx에서 정규식을 읽고, 실험하고, 웹을 사용하여 자세히 알아보세요.
Match 옵션
문자열 연결 연산자(&&)를 사용하여 결합하는 하나 이상의 옵션을 지정하여 이러한 함수의 동작을 수정합니다.
| MatchOptions 열거 | 설명 | 정규식에 대한 영향 |
|---|---|---|
| 매치 옵션.시작 | 패턴은 텍스트의 시작 부분에서 일치해야 합니다. | ^를 정규식의 시작 부분에 추가합니다. |
| 매치 옵션.완료 | IsMatch Power Apps의 기본값입니다. 패턴은 텍스트의 전체 문자열을 처음부터 끝까지 일치합니다. | ^를 정규식의 시작 부분에 $를 끝 부분에 추가합니다. |
| MatchOptions.포함 | Power Apps 및 MatchMatchAllIsMatch 외부의 기본값입니다. 패턴은 텍스트의 어딘가에 나타나야 하지만 시작 또는 끝일 필요가 없습니다. | 정규식을 수정하지 않습니다. |
| MatchOptions.DotAll | 줄 바꿈 문자를 포함하여 모든 문자와 . 일치하도록 (점) 연산자의 동작을 변경합니다. Power Apps에서는 사용할 수 없습니다. |
정규식을 수정하지 않습니다. 이 옵션은 정규식에 대한 표준 "s" 한정자와 동일합니다. |
| 매치 옵션.끝내기 | 패턴은 텍스트 문자열의 끝 부분에서 일치해야 합니다. | $를 정규식의 끝 부분에 추가합니다. |
| MatchOptions.FreeSpacing | 줄 바꿈을 포함한 공백 문자는 정규식에서 무시됩니다. a로 시작하는 # 줄 끝 주석은 무시됩니다. Power Apps에서는 사용할 수 없습니다. |
정규식 구문만 변경합니다. 이 옵션은 정규식에 대한 표준 "x" 한정자와 동일합니다. |
| MatchOptions.IgnoreCase | 대문자와 소문자를 동일하게 취급합니다. 기본적으로 일치는 대/소문자 구분입니다. | 정규식을 수정하지 않습니다. 이 옵션은 정규식의 표준 "i"수정 자와 같습니다. |
| MatchOptions.Multiline | 줄의 끝에서 일치하도록 동작 ^$ 을 변경합니다. |
정규식을 수정하지 않습니다. 이 옵션은 정규식의 표준 "g" 수정자와 같습니다. |
| MatchOptions.NumberedSubMatches | 명명된 캡처는 이해하고 유지 관리하기 쉽기 때문에 선호됩니다. 불필요한 캡처가 유지되지 않으므로 성능도 향상됩니다. 그러나 이전 정규식의 경우 각 괄호 집합을 결과에 SubMatches 테이블에 포함된 번호가 매겨진 캡처로 처리합니다. Power Apps의 기본값입니다. | 정규식을 수정하지 않습니다. 명명된 캡처는 사용하지 않도록 설정되고 \1 스타일 뒤로 참조를 사용할 수 있습니다. |
사용 MatchAll 은 정규식에 표준 "g" 한정자를 사용하는 것과 같습니다.
구문
IsMatch( 텍스트, 패턴 [, 옵션 ] )
- 텍스트 – 필수. 테스트할 텍스트 문자열입니다.
- 패턴 – 필수. 텍스트 문자열로 테스트할 패턴입니다. 열거형이 Match 정의하거나 정규식을 제공하는 미리 정의된 패턴을 연결합니다. 패턴 은 변수, 데이터 원본 또는 앱이 실행될 때 변경되는 기타 동적 참조가 없는 상수 수식이어야 합니다. 참고로 수식은 "Match로 표현되어야 합니다. PredefinedPattern" 예: Match. 메일 주소
- 옵션 – 선택 사항. MatchOptions 열거 값의 텍스트 문자열 조합입니다. 기본적으로 MatchOptions.Complete가 사용됩니다. 옵션은 앱이 실행될 때 변경되는 변수, 데이터 원본 또는 기타 동적 참조가 없는 상수 수식이어야 합니다.
Match( 텍스트, 패턴 [, 옵션 ] )
- 텍스트 – 필수. 일치할 텍스트 문자열입니다.
- 패턴 – 필수. 텍스트 문자열로 일치할 패턴입니다. 열거형이 Match 정의하는 미리 정의된 패턴을 연결하거나 정규식을 제공합니다. 패턴 은 앱이 실행됨에 따라 변경되는 변수, 데이터 소스 또는 기타 동적 참조가 없는 상수 수식이어야 합니다.
- 옵션 – 선택 사항. MatchOptions 열거 값의 텍스트 문자열 조합입니다. 기본적으로 MatchOptions.Contains가 사용됩니다. 옵션은 앱이 실행될 때 변경되는 변수, 데이터 원본 또는 기타 동적 참조가 없는 상수 수식이어야 합니다.
MatchAll( 텍스트, 패턴 [, 옵션 ] )
- 텍스트 – 필수. 일치할 텍스트 문자열입니다.
- 패턴 – 필수. 텍스트 문자열로 일치할 패턴입니다. 열거형이 Match 정의하거나 정규식을 제공하는 미리 정의된 패턴을 연결합니다. 패턴 은 변수, 데이터 원본 또는 앱이 실행될 때 변경되는 기타 동적 참조가 없는 상수 수식이어야 합니다.
- 옵션 – 선택 사항. MatchOptions 열거 값의 텍스트 문자열 조합입니다. 기본적으로 MatchOptions.Contains가 사용됩니다. 옵션은 앱이 실행될 때 변경되는 변수, 데이터 원본 또는 기타 동적 참조가 없는 상수 수식이어야 합니다.
IsMatch 예제
일반 문자
앱에 TextInput1이라는 텍스트 입력 컨트롤이 있다고 상상해 보십시오. 사용자는 이 컨트롤에 값을 입력하여 데이터베이스에 저장합니다.
사용자는 TextInput1에 Hello world를 입력합니다.
| 수식 | 설명 | 결과 |
|---|---|---|
IsMatch( TextInput1.Text, "Hello world" ) |
사용자의 입력이 문자열 "Hello world"와 정확히 일치하는지 여부를 테스트합니다. | 진실 |
IsMatch( TextInput1.Text, "Good bye" ) |
사용자의 입력이 문자열 "Good bye"와 정확히 일치하는지 여부를 테스트합니다. | 거짓 |
IsMatch( TextInput1.Text, "hello", Contains ) |
사용자의 입력이 단어 "hello"(대/소문자 구분)를 포함하는지 여부를 테스트합니다. | 거짓 |
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) |
사용자의 입력이 단어 "hello"(대/소문자 구분하지 않음)를 포함하는지 여부를 테스트합니다. | 진실 |
미리 정의된 패턴
| 수식 | 설명 | 결과 |
|---|---|---|
IsMatch( "123-45-7890", Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit ) |
미국 사회 보장 번호와 일치합니다. | 진실 |
IsMatch( "joan@contoso.com", Match.Email ) |
이메일 주소와 일치합니다. | 진실 |
IsMatch( "123.456", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) |
숫자, 마침표, 0개 이상의 숫자 시퀀스와 일치합니다. | 진실 |
IsMatch( "123", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) |
숫자, 마침표, 0개 이상의 숫자 시퀀스와 일치합니다. 마침표가 일치할 텍스트에 표시되지 않으므로 이 패턴은 일치하지 않습니다. | 거짓 |
정규식
| 수식 | 설명 | 결과 |
|---|---|---|
IsMatch( "986", "\d+" ) |
0보다 큰 정수와 일치합니다. | 진실 |
IsMatch( "1.02", "\d+(\.\d\d)?" ) |
양수 통화 금액과 일치합니다. 입력에 소수점이 포함되는 경우 입력은 소수점 뒤에 두 개의 숫자도 포함해야 합니다. 예를 들어, 3.00은 유효하지만 3.1은 유효하지 않습니다. | 진실 |
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) |
양수 또는 음수 통화 금액과 일치합니다. 입력에 소수점이 포함되는 경우 입력은 소수점 뒤에 두 개의 숫자도 포함해야 합니다. | 진실 |
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) |
미국 사회 보장 번호와 일치합니다. 제공된 입력 필드의 형식, 유형 및 길이의 유효성을 검사합니다. 일치시킬 문자열은 3개의 숫자 뒤에 대시가 오고, 2개의 숫자 뒤에 대시가 온 다음 4개의 숫자로 구성되어야 합니다. | 진실 |
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) |
이전 예제와 같지만 하이픈 중 하나가 입력에서 제자리에 있지 않습니다. | 거짓 |
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) |
8자, 9자 또는 10자, 적어도 한 자리 및 하나 이상의 알파벳 문자를 포함해야 하는 강력한 암호의 유효성을 검사합니다. 문자열에는 특수 문자를 포함할 수 없습니다. | 거짓 |
Match 및 MatchAll 예제
| 수식 | 설명 | 결과 |
|---|---|---|
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>") |
연락처 정보의 이메일 부분만 추출합니다. | { email: "bob.jones@contoso.com", FullMatch: "<bob.jones@contoso.com>", StartMatch: 11 } |
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" |
연락처 정보의 이메일 부분만 추출합니다. 유효한 주소를 찾을 수 없으므로(@ 기호 없음) 함수는 blank을 반환합니다. | 공백 |
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) |
Language 함수가 반환하는 언어, 스크립트 및 언어 태그의 지역 부분을 추출합니다. 이 결과는 미국을 반영하므로 더 많은 예제를 위해 Language 함수 설명서를 참조하십시오. (?: 연산자는 다른 하위 일치를 만들지 않고 문자를 그룹화합니다. | { language: "en", script: 공백, region: "US", FullMatch: "en-US", StartMatch: 1 } |
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) |
ISO 8601 기간 값에서 시간, 분, 초를 추출합니다. 추출된 숫자는 여전히 텍스트 문자열에 있습니다. Value 함수를 사용해 연산이 수행되기 전 숫자로 바꿉니다. | { 시간: "2", minutes: "1", 초: "39", FullMatch: "PT2H1M39S", StartMatch: 1 } |
마지막 예를 살펴 보겠습니다. Time 함수를 사용하여 이 문자열을 날짜/시간 값으로 변환하려면 명명된 하위 매트를 개별적으로 전달해야 합니다. 이렇게 하려면 다음을 반환하는 레코드 Match 에서 작동되는 With 함수를 사용합니다.
With(
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
이 예에서는 Button 컨트롤을 추가하고 OnSelect 속성을 이 수식으로 바꾸고 단추를 선택합니다.
Set( pangram, "The quick brown fox jumps over the lazy dog." )
| 수식 | 설명 | 결과 |
|---|---|---|
Match( pangram, "THE", IgnoreCase ) |
텍스트 문자열에서 pangram 변수가 포함하는 "THE"와 일치하는 모든 항목을 찾습니다. 문자열에는 두 개의 일치 항목이 포함되어 있지만 사용 중이고 사용하지 Match 않기 MatchAll때문에 첫 번째 문자열만 반환됩니다. | { FullMatch: "The", StartMatch: 32 } |
MatchAll( pangram, "the" ) |
텍스트 문자열에서 pangram 변수가 포함하는 "the"와 일치하는 모든 항목을 찾습니다. 테스트는 대소문자를 구분하므로 "the"의 두 번째 인스턴스만 발견됩니다. |
|
MatchAll( pangram, "the", IgnoreCase ) |
텍스트 문자열에서 pangram 변수가 포함하는 "the"와 일치하는 모든 항목을 찾습니다. 이 경우 테스트는 대소문자를 구분하지 않으므로 단어의 두 인스턴스가 모두 발견됩니다. |
|
MatchAll( pangram, "\b\wo\w\b" ) |
중간에 "o"가 있는 3 글자 단어를 모두 찾습니다. "brown"은 세 글자로 된 단어가 아니므로 "\b"(단어 경계)와 일치하지 않으므로 제외됩니다. |
|
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) |
"fox"와 "dog" 사이의 모든 문자를 일치시킵니다. | { between: "jumps over the lazy", FullMatch : "여우는 게으른 개를 통해 점프", StartMatch: 17 } |
갤러리의 MatchAll 결과를 보려면 다음을 수행합니다.
빈 화면에서 빈 세로 갤러리 컨트롤을 삽입합니다.
갤러리의 Items 속성을 MatchAll(pangram, "\w+" ) 또는 MatchAll(pangram, MultipleLetters)로 설정합니다.
갤러리 컨트롤 중간의 "삽입 탭에서 항목 추가"를 선택하여 갤러리 템플릿을 선택합니다.
갤러리 템플릿에 Label 컨트롤을 추가합니다.
레이블의 Text 속성을 ThisItem.FullMatch로 설정합니다.
갤러리는 예제 텍스트에서 각 단어로 채워져 있습니다. 한 화면에서 모든 단어를 보려면 갤러리의 템플릿과 레이블 컨트롤의 크기를 조정합니다.