PowerApps의 IsMatch 함수IsMatch function in PowerApps

텍스트 문자열이 패턴과 일치하는지 여부를 테스트합니다.Tests whether a text string matches a pattern.

설명Description

IsMatch 함수는 텍스트 문자열이 일반 문자, 미리 정의된 패턴 또는 정규식을 구성할 수 있는 패턴과 일치하는지 여부를 테스트합니다.The IsMatch function tests whether a text string matches a pattern that can comprise ordinary characters, predefined patterns, or a regular expression.

IsMatch를 사용하여 사용자가 Text input 컨트롤에 입력한 것의 유효성을 검사합니다.Use IsMatch to validate what a user has typed in a Text input control. 예를 들어, 결과가 데이터 원본에 저장되기 전에 사용자가 유효한 이메일 주소를 입력했는지 여부를 확인할 수 있습니다.For example, you can confirm whether the user has entered a valid email address before the result is saved to your data source. 항목이 조건과 일치하지 않는 경우 사용자에게 항목을 수정하도록 하는 다른 컨트롤을 추가합니다.If the entry doesn't match your criteria, add other controls that prompt the user to correct the entry.

기본적으로 IsMatch는 전체 텍스트 문자열에 대한 대/소문자 구분 일치를 수행합니다.By default, IsMatch performs a case-sensitive match for the entire text string. 하나 이상의 MatchOptions를 지정하여 이 동작을 수정할 수 있습니다.You can modify this behavior by specifying one or more MatchOptions.

IsMatch는 텍스트 문자열이 패턴과 일치하는 경우 true를 반환하고 그렇지 않은 경우 false를 반환합니다.IsMatch returns true if the text string matches the pattern or false if it doesn't.

패턴Patterns

IsMatch를 사용하는 핵심은 일치시킬 패턴을 설명하는 것에 있습니다.The key to using IsMatch is in describing the pattern to match. 다음의 조합으로 텍스트 문자열에서 패턴을 설명합니다.You describe the pattern in a text string as a combination of:

  • "abc" 또는 "123" 과 같은 일반 문자Ordinary characters, such as "abc" or "123".
  • Letter, MultipleDigits 또는 Email과 같은 미리 정의된 패턴Predefined patterns, such as Letter, MultipleDigits, or Email. (Match 열거는 이러한 패턴을 정의합니다.)(The Match enum defines these patterns.)
  • "\d+\s+\d+" 또는 "[a-z]+" 와 같은 정규식 코드Regular expressions codes, such as "\d+\s+\d+" or "[a-z]+".

문자열 연결 연산자 &를 사용하여 이러한 요소를 결합합니다.Combine these elements by using the string concatenation operator &. 예를 들어, "abc" & Digit & "\s+" 는 "a", "b" 및 "c", 그 뒤에 0~9의 숫자, 그 뒤에 최소 하나의 공백 문자가 오는 문자와 일치하는 유효한 패턴입니다.For example, "abc" & Digit & "\s+" is a valid pattern that matches the characters "a", "b", and "c", followed by a digit from 0 to 9, followed by at least one whitespace character.

일반 문자Ordinary characters

가장 간단한 패턴은 정확히 일치되는 일반 문자의 시퀀스입니다.The simplest pattern is a sequence of ordinary characters to be matched exactly.

예를 들어, 문자열 "Hello"는 패턴 "Hello" 와 정확하게 일치합니다.For example, the string "Hello" matches the pattern "Hello" exactly. 그 이상 그 이하도 아닙니다.No more and no less. 문자열 "hello!"The string "hello!" 는 끝에 느낌표가 오고 문자 "h"에 대한 대/소문자가 잘못됐으므로 패턴과 일치하지 않습니다.doesn't match the pattern because of the exclamation point on the end and the case is wrong for the letter "h". (이 동작을 수정하는 방법은 MatchOptions를 참조하세요.)(See MatchOptions for ways to modify this behavior.)

패턴 언어에서 특정 문자는 특별한 용도로 예약되어 있습니다.In the pattern language, certain characters are reserved for special purposes. 이러한 문자를 사용하려면 문자가 문자 그대로 해석되어야 하거나 미리 정의된 패턴 중 하나를 사용해야 함을 나타내도록 \(백슬래시)로 문자에 접두사를 덧붙입니다.To use these characters, either prefix the character with a \ (backslash) to indicate that the character should be taken literally or use one of the predefined patterns. 이 테이블은 특수 문자를 나열합니다.This table lists the special characters:

특수 문자Special character 설명Description
.. 점 또는 마침표dot or period
?? 물음표question mark
** 별표asterisk
+ 더하기plus
( )( ) 괄호parenthesis
[ ][ ] 대괄호square brackets
{ }{ } 중괄호curly braces
^ 캐럿caret
$ 달러 기호dollar sign
|| 세로 막대 또는 파이프vertical bar or pipe
\ 백슬래시backslash

예를 들어 "Hello?"를 찾아 볼 수 있습니다.For example, you can match "Hello?" 패턴을 사용 하 여 "Hello\?"by using the pattern "Hello\?" 물음표 앞에 백슬래시와.with a backslash before the question mark.

미리 정의된 패턴Predefined patterns

미리 정의된 패턴은 문자 집합 중 하나 또는 여러 문자의 시퀀스와 일치시키는 간단한 방법을 제공합니다.Predefined patterns provide a simple way to match one of a set of characters, or a sequence of multiple characters. 문자열 연결 연산자 &를 사용하여 Match 열거의 구성원과 사용자 고유의 텍스트 문자열을 결합합니다.Use the string concatenation operator & to combine your own text strings with members of the Match enum:

일치 열거Match Enum 설명Description 정규식Regular Expression
AnyAny 문자와 일치합니다.Matches any character. ..
CommaComma 쉼표와 일치합니다.Matches a comma. ,,
DigitDigit 단일 숫자("0"부터 "9")와 일치합니다.Matches a single digit ("0" through "9"). \d\d
EmailEmail "at" 기호("@")를 포함하는 이메일 주소 및 점(".")을 포함하는 도메인 이름과 일치합니다.Matches an email address that contains an "at" symbol ("@") and a domain name that contains a dot (".") .+@.+\.[^\.]{2,}.+@.+\.[^\.]{2,}
HyphenHyphen 하이픈과 일치합니다.Matches a hyphen. \-
LeftParenLeftParen 왼쪽 괄호"("와 일치합니다.Matches a left parenthesis "(". \(\(
LetterLetter 문자와 일치합니다.Matches a letter. \p{L}\p{L}
MultipleDigitsMultipleDigits 하나 이상의 숫자와 일치합니다.Matches one or more digitis. \d+\d+
MultipleLettersMultipleLetters 하나 이상의 문자와 일치합니다.Matches one or more letters. \p{L}+\p{L}+
MultipleNonSpacesMultipleNonSpaces 공백(공백, 탭, 줄 바꿈)을 추가하지 않는 하나 이상의 문자와 일치합니다.Matches one or more characters that don't add whitespace (space, tab, newline). \S+\S+
MultipleSpacesMultipleSpaces 공백(공백, 탭, 줄 바꿈)을 추가하는 하나 이상의 문자와 일치합니다.Matches one or more characters that add whitespace (space, tab, newline). \s+\s+
NonSpaceNonSpace 공백을 추가하지 않는 단일 문자와 일치합니다.Matches a single character that doesn't add whitespace. \S\S
OptionalDigitsOptionalDigits 0개, 1개 또는 더 많은 숫자와 일치합니다.Matches zero, one, or more digits. \d\d
OptionalLettersOptionalLetters 0개, 1개 또는 더 많은 문자와 일치합니다.Matches zero, one, or more letters. \p{L}\p{L}
OptionalNonSpacesOptionalNonSpaces 공백을 추가하지 않는 0개, 1개 또는 더 많은 문자와 일치합니다.Matches zero, one, or more characters that don't add whitespace. \S\S
OptionalSpacesOptionalSpaces 공백을 추가하는 0개, 1개 또는 더 많은 문자와 일치합니다.Matches zero, one, or more characters that add whitespace. \s\s
PeriodPeriod 마침표 또는 점(".")과 일치합니다.Matches a period or dot ("."). \.\.
RightParenRightParen 오른쪽 괄호")"와 일치합니다.Matches a right parenthesis ")". \)\)
SpaceSpace 공백을 추가하는 문자와 일치합니다.Matches a character that adds whitespace. \s\s

예를 들어, 패턴 "A" & MultipleDigits는 하나 이상의 숫자가 뒤에 오는 문자 "A"와 일치합니다.For example, the pattern "A" & MultipleDigits will match the letter "A" followed by one or more digits.

정규식Regular expressions

IsMatch에서 사용되는 패턴은 정규식입니다.The pattern used by IsMatch is a regular expression. 위에서 설명된 일반 문자 및 미리 정의된 패턴은 정규식을 작성하도록 돕습니다.The ordinary characters and predefined patterns that are described above help build regular expressions.

정규식은 매우 강력하고 여러 프로그래밍 언어에서 사용할 수 있으며 다양한 목적에 사용됩니다.Regular expressions are very powerful, available in many programming languages, and used for a wide variety of purposes. 이 문서는 정규식의 모든 측면을 설명할 수 없지만 풍부한 정보와 자습서가 사용자를 도울 수 있도록 웹에 게시됩니다.This article can't describe all aspects of regular expressions, but a wealth of information and tutorials are published on the web to aid you.

정규식에는 서로 다른 방언이 있으며 PowerApps는 다양한 JavaScript 방언을 사용합니다.Regular expressions have different dialects, and PowerApps uses a variant of the JavaScript dialect. 자세한 내용은 정규식 구문을 참조하세요.For more information, see regular expression syntax.

위의 Match 열거 테이블에서 각 열거는 정규식으로 확장하고 "정규식" 열에 있는 텍스트 문자열은 해당 식을 정의합니다.In the Match enum table above, each enum expands into a regular expression, and the text string in the "Regular Expression" column defines that expression.

일치 옵션Match options

문자열 연결 연산자(&)를 사용하여 결합할 수 있는 하나 이상의 옵션을 지정하여 IsMatch의 동작을 수정할 수 있습니다.You can modify the behavior of IsMatch by specifying one or more options, which you can combine by using the string concatenation operator (&).

기본적으로 IsMatch는 전체 텍스트 문자열의 전체 일치에 대해 테스트합니다.By default, IsMatch tests for a complete match of the entire text string.

MatchOptions 열거MatchOptions Enum 설명Description 정규식에 대한 영향Impact on regular expression
BeginsWithBeginsWith 패턴은 텍스트의 시작 부분에서 일치해야 합니다.The pattern must match from the beginning of the text. ^ 를 정규식의 시작 부분에 추가합니다.Adds a ^ to the start of the regular expression.
CompleteComplete 기본값입니다.Default. 패턴은 처음부터 끝까지 전체 텍스트와 일치해야 합니다.The pattern must match the entire text, from beginning to end. ^ 를 정규식의 시작 부분에 $ 를 끝 부분에 추가합니다.Adds a ^ to the start and $ to the end of the regular expression.
ContainsContains 패턴은 텍스트의 어딘가에 나타나야 하지만 시작 또는 끝일 필요가 없습니다.The pattern must appear somewhere in the text but doesn't need to begin or end it. 정규식을 수정하지 않습니다.Doesn't modify the regular expression.
EndsWithEndsWith 패턴은 텍스트의 끝과 일치해야 합니다.The pattern must match the end of the text. $ 를 정규식의 끝 부분에 추가합니다.Adds a $ to the end of the regular expression.
IgnoreCaseIgnoreCase 대/소문자 구분 방식으로 문자의 일치를 처리합니다.Treats the matching of letters in a case-insensitive manner. 기본적으로 일치는 대/소문자 구분입니다.By default, matching is case sensitive. 정규식을 수정하지 않습니다.Doesn't modify the regular expression.
MultilineMultiline 여러 줄과 일치합니다.Matches across multiple lines. 정규식을 수정하지 않습니다.Doesn't modify the regular expression.

구문Syntax

IsMatch( Text, Pattern [, Options ] )IsMatch( Text, Pattern [, Options ] )

  • Text – 필수 항목입니다.Text – Required. 테스트할 텍스트 문자열입니다.The text string to test.
  • Pattern – 필수 항목입니다.Pattern – Required. 텍스트 문자열로 테스트할 패턴입니다.The pattern to test, as a text string. Match 열거가 정규식을 정의하거나 제공하는 미리 정의된 패턴을 연결합니다.Concatenate predefined patterns that the Match enum defines or provide a regular expression.
  • Options – 선택 사항입니다.Options – Optional. MatchOptions 열거 값의 텍스트 문자열 조합입니다.A text string combination of MatchOptions enum values. 기본적으로 MatchOptions.Complete가 사용됩니다.By default, MatchOptions.Complete is used.

Examples

일반 문자Ordinary characters

앱에 TextInput1이라는 Text input 컨트롤이 포함되어 있다고 가정합니다.Imagine that your app contains a Text input control named TextInput1. 사용자는 데이터베이스에 저장되도록 이 컨트롤에 값을 입력합니다.The user enters values into this control to be stored in a database.

사용자는 TextInput1Hello world를 입력합니다.The user types Hello world into TextInput1.

수식Formula 설명Description 결과Result
IsMatch( TextInput1.Text, "Hello world" )IsMatch( TextInput1.Text, "Hello world" ) 사용자의 입력이 문자열 "Hello world"와 정확히 일치하는지 여부를 테스트합니다.Tests whether the user's input matches, exactly, the string "Hello world" truetrue
IsMatch( TextInput1.Text, "Good bye" )IsMatch( TextInput1.Text, "Good bye" ) 사용자의 입력이 문자열 "Good bye"와 정확히 일치하는지 여부를 테스트합니다.Tests whether the user's input matches, exactly, the string "Good bye" falsefalse
IsMatch( TextInput1.Text, "hello", Contains )IsMatch( TextInput1.Text, "hello", Contains ) 사용자의 입력이 단어 "hello"(대/소문자 구분)를 포함하는지 여부를 테스트합니다.Tests whether the user's input contains the word "hello" (case sensitive). falsefalse
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase )IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) 사용자의 입력이 단어 "hello"(대/소문자 구분하지 않음)를 포함하는지 여부를 테스트합니다.Tests whether the user's input contains the word "hello" (case insensitive). truetrue

미리 정의된 패턴Predefined patterns

수식Formula 설명Description 결과Result
IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit & Digit )IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit & Digit ) 미국 사회 보장 번호와 일치합니다.Matches a United States Social Security Number truetrue
IsMatch( "joan@contoso.com", Email )IsMatch( "joan@contoso.com", Email ) 이메일 주소와 일치합니다.Matches an email address truetrue
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits )IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) 숫자, 마침표, 0개 이상의 숫자 시퀀스와 일치합니다.Matches a sequence of digits, a period, and then zero or more digits. truetrue
IsMatch( "123", MultipleDigits & Period & OptionalDigits )IsMatch( "123", MultipleDigits & Period & OptionalDigits ) 숫자, 마침표, 0개 이상의 숫자 시퀀스와 일치합니다.Matches a sequence of digits, a period, and then zero or more digits. 마침표가 텍스트에 표시되지 않으므로 이 패턴은 일치하지 않습니다.A period doesn't appear in the text, so this pattern isn't matched. falsefalse

정규식Regular expressions

수식Formula 설명Description 결과Result
IsMatch( "986", "\d+" )IsMatch( "986", "\d+" ) 0보다 큰 정수와 일치합니다.Matches a an integer greater than zero. truetrue
IsMatch( "1.02", "\d+(.\d\d)?" )IsMatch( "1.02", "\d+(.\d\d)?" ) 양수 통화 금액과 일치합니다.Matches a positive currency amount. 입력에 소수점이 포함되는 경우 입력은 소수점 뒤에 2개의 숫자도 포함해야 합니다.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. 예를 들어, 3.00은 유효하지만 3.1은 유효하지 않습니다.For example, 3.00 is valid, but 3.1 isn't. truetrue
IsMatch( "-4.95", "(-)?\d+(.\d\d)?" )IsMatch( "-4.95", "(-)?\d+(.\d\d)?" ) 양수 또는 음수 통화 금액과 일치합니다.Matches a positive or negative currency amount. 입력에 소수점이 포함되는 경우 입력은 소수점 뒤에 2개의 숫자도 포함해야 합니다.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. truetrue
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" )IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) 미국 사회 보장 번호와 일치합니다.Matches a United States Social Security number. 제공된 입력 필드의 형식, 유형 및 길이의 유효성을 검사합니다.Validates the format, type, and length of the supplied input field. 일치시킬 문자열은 3개의 숫자 뒤에 대시가 오고, 2개의 숫자 뒤에 대시가 온 다음 4개의 숫자로 구성되어야 합니다.The string to match must consist of 3 numeric characters followed by a dash, then 2 numeric characters followed by a dash, and then 4 numeric characters. truetrue
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" )IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) 이전 예제와 같지만 하이픈 중 하나가 입력에서 제자리에 있지 않습니다.Same as the previous example, but one of the hyphens is out of place in the input. falsefalse
IsMatch( "weakpassword", "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8,10})" )IsMatch( "weakpassword", "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8,10})" ) 8, 9 또는 10자의 문자 및 하나 이상의 숫자와 하나 이상의 영문자를 포함해야 하는 강력한 암호의 유효성을 검사합니다.Validates a strong password, which must contain 8, 9, or 10 characters, in addition to at least one digit and at least one alphabetic character. 문자열은 특수 문자를 포함할 수 없습니다.The string must not contain special characters. falsefalse
IsMatch( "http://microsoft.com", "(ht|f)tp(s?)://[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(/?)([a-zA-Z0-9-.?,'/\+&%$#_]*)?" )IsMatch( "http://microsoft.com", "(ht|f)tp(s?)://[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(/?)([a-zA-Z0-9-.?,'/\+&%$#_]*)?" ) http, https 또는 ftp URL의 유효성을 검사합니다.Validates an http, https, or ftp URL. truetrue