Visual Studio에서 정규식 사용Use regular expressions in Visual Studio

Visual Studio에서는 .NET Framework 정규식을 사용하여 텍스트를 찾고 바꿉니다.Visual Studio uses .NET Framework regular expressions to find and replace text.

대체 패턴Replacement patterns

번호가 매겨진 캡처 그룹을 사용하려면 정규식 패턴에서 괄호를 사용하여 그룹을 묶습니다.To use a numbered capture group, surround the group with parentheses in the regular expression pattern. number가 바꾸기 패턴에서 특정한 번호가 매겨진 그룹을 지정하기 위해 1에서 시작하는 정수인 경우 $number을 사용합니다.Use $number, where number is an integer starting at 1, to specify a specific, numbered group in a replacement pattern. 예를 들어 그룹화된 정규식 (\d)([a-z])은 다음 두 그룹을 정의합니다. 첫 번째 그룹은 단일 10진수를 포함하고 두 번째 그룹은 az 사이의 단일 문자를 포함합니다.For example, the grouped regular expression (\d)([a-z]) defines two groups: the first group contains a single decimal digit, and the second group contains a single character between a and z. 식은 문자열 1a 2b 3c 4d에서 일치 항목 4개를 찾습니다.The expression finds four matches in the following string: 1a 2b 3c 4d. 대체 문자열 z$1은 첫 번째 그룹만 참조하고 문자열을 z1 z2 z3 z4로 변환합니다.The replacement string z$1 references the first group only, and converts the string to z1 z2 z3 z4.

바꾸기 패턴에서 사용되는 정규식에 대한 자세한 내용은 정규식의 대체(.NET 가이드)를 참조하세요.For information about regular expressions that are used in replacement patterns, see Substitutions in regular expressions (.NET guide).

정규식 예제Regular expression examples

다음은 몇 가지 예입니다.Here are some examples:

용도Purpose Expression Example
줄 바꿈 이외의 모든 단일 문자를 찾습니다.Match any single character (except a line break) .. a.o는 "around"의 "aro" 및 "about"의 "abo"와 일치하지만 "across"의 "acro"와 일치하지 않습니다.a.o matches "aro" in "around" and "abo" in "about" but not "acro" in "across".
이전 식에서 일치 항목 0개 이상을 찾습니다(가능한 한 많은 문자를 찾음).Match zero or more occurrences of the preceding expression (match as many characters as possible) * a*r는 "rack"의 "r", "ark"의 "ar", "aardvark"의 "aar"과 일치합니다.a*r matches "r" in "rack", "ar" in "ark", and "aar" in "aardvark"
임의의 문자를 0회 이상 찾습니다(와일드카드 *).Match any character zero or more times (Wildcard *) .*.* c.*e는 “racket”의 “cke”, “comment”의 “comme”, “code”의 “code”와 일치합니다.c.*e matches "cke" in "racket", "comme" in "comment", and "code" in "code"
이전 식에서 일치 항목 1개 이상을 찾습니다(가능한 한 많은 문자를 찾음).Match one or more occurrences of the preceding expression (match as many characters as possible) + e.+d는 “feeder”의 “ede”와 일치하지만 “ed”와 일치하지 않습니다.e.+d matches "eed" in "feeder" but not "ed".
임의의 문자를 1회 이상 찾습니다(와일드카드 ?).Match any character one or more times (Wildcard ?) .+.+ e.+e는 "feeder"의 "eede"와 일치하지만 "ee"와 일치하지 않습니다.e.+e matches "eede" in "feeder" but not "ee".
이전 식에서 일치 항목 0개 이상을 찾습니다(가능한 한 적은 문자를 찾음).Match zero or more occurrences of the preceding expression (match as few characters as possible) *?*? e.*?e는 "feeder"의 "ee"와 일치하지만 "eede"와 일치하지 않습니다.e.*?e matches "ee" in "feeder" but not "eede".
이전 식에서 일치 항목 1개 이상을 찾습니다(가능한 한 적은 문자를 찾음).Match one or more occurrences of the preceding expression (match as few characters as possible) +?+? e.+?e는 "enterprise"의 "ente" 및 "erprise"와 일치하지만 전체 단어 "enterprise"와 일치하지 않습니다.e.+?e matches "ente" and "erprise" in "enterprise", but not the whole word "enterprise".
일치 문자열을 줄 또는 문자열의 시작에 고정합니다.Anchor the match string to the beginning of a line or string ^ ^car는 줄의 시작 부분에 나타날 때만 단어 "car"와 일치합니다.^car matches the word "car" only when it appears at the beginning of a line.
일치 문자열을 줄의 끝에 고정합니다.Anchor the match string to the end of a line \r?$\r?$ End\r?$는 줄의 끝 부분에 나타날 때만 단어 "end"와 일치합니다.End\r?$ matches "end" only when it appears at the end of a line.
집합에 있는 단일 문자를 찾습니다.Match any single character in a set [abc][abc] b[abc]는 "ba", "bb", "bc"와 일치합니다.b[abc] matches "ba", "bb", and "bc".
문자 범위에서 임의 문자를 찾습니다.Match any character in a range of characters [a-f][a-f] be[n-t]는 "between"의 "bet", "beneath"의 "ben", "beside"의 "bes"와 일치하지만 "below"와 일치하지 않습니다.be[n-t] matches "bet" in "between", "ben" in "beneath", and "bes" in "beside", but not "below".
괄호 안에 포함된 식을 캡처하고 명시적으로 번호를 지정합니다.Capture and implicitly number the expression contained within parenthesis ()() ([a-z])X\1은 "aXa" 및 "bXb"와 일치하지만 "aXb"와 일치하지 않습니다. "([a-z])X\1 matches "aXa"and "bXb", but not "aXb". “\1”은 첫 번째 식 그룹 “[a-z]”를 나타냅니다."\1" refers to the first expression group "[a-z]".
일치를 무효화합니다.Invalidate a match (?!abc)(?!abc) real(?!ity)는 "realty" 및 "really"의 "real"과 일치하지만 "reality"와 일치하지 않습니다.real(?!ity) matches "real" in "realty" and "really" but not in "reality." "realityreal"에서 두 번째 "real"도 찾지만 첫 번째 "real"은 찾지 않습니다.It also finds the second "real" (but not the first "real") in "realityreal".
지정된 문자 집합에 없는 모든 문자를 찾습니다.Match any character that is not in a given set of characters [^abc][^abc] be[^n-t]는 "before"의 "bef", "behind"의 "beh", "below"의 "bel"과 일치하지만 "beneath"와 일치하지 않습니다.be[^n-t] matches "bef" in "before", "beh" in "behind", and "bel" in "below", but not "beneath".
기호 앞 또는 기호 뒤에 있는 식을 찾습니다.Match either the expression before or the one after the symbol. || (sponge\|mud) bath는 "sponge bath" 및 "mud bath"와 일치합니다.(sponge\|mud) bath matches "sponge bath" and "mud bath."
백슬래시 뒤의 문자를 이스케이프합니다.Escape the character following the backslash \ \^은 문자 ^과 일치합니다.\^ matches the character ^.
이전 문자 또는 그룹의 일치 항목 수를 지정합니다.Specify the number of occurrences of the preceding character or group {x}. 여기서 x는 일치 항목 수입니다.{x}, where x is the number of occurrences x(ab){2}x는 "xababx"와 일치하고, x(ab){2,3}x는 "xababx" 및 "xabababx"와 일치하지만 "xababababx"와 일치하지 않습니다.x(ab){2}x matches "xababx", and x(ab){2,3}x matches "xababx" and "xabababx" but not "xababababx".
유니코드 문자 클래스에서 텍스트를 찾습니다. 여기서 “X”는 유니코드 번호입니다.Match text in a Unicode character class, where "X" is the Unicode number. 유니코드 문자 클래스에 대한 자세한 내용은For more information about Unicode character classes, see

Unicode Standard 5.2 Character Properties(유니코드 표준 5.2 문자 속성)를 참조하세요.Unicode Standard 5.2 Character Properties.
\p{X}\p{X} \p{Lu}는 "Thomas Doe"의 "T" 및 "D"와 일치합니다.\p{Lu} matches "T" and "D" in "Thomas Doe".
단어 경계를 찾습니다.Match a word boundary \b(\b는 문자 클래스 외부에서 단어 경계를 지정하고 문자 클래스 내부에서 백스페이스를 지정함).\b (Outside a character class \b specifies a word boundary, and inside a character class specifies a backspace). \bin은 "inside"의 "in"과 일치하지만 "pinto"와 일치하지 않습니다.\bin matches "in" in "inside" but not "pinto".
줄 바꿈을 찾습니다(즉, 캐리지 리턴 뒤에 줄 바꿈).Match a line break (that is, a carriage return followed by a new line). \r?\n\r?\n End\r?\nBegin은 "End"가 줄의 마지막 문자열이고 "Begin"이 다음 줄의 첫 번째 문자열일 때만 "End" 및 "Begin"과 일치합니다.End\r?\nBegin matches "End" and "Begin" only when "End" is the last string in a line and "Begin" is the first string in the next line.
영숫자 문자를 찾습니다.Match any alphanumeric character \w\w a\wd는 "add" 및 "a1d"와 일치하지만 "a d"와 일치하지 않습니다.a\wd matches "add" and "a1d" but not "a d".
공백 문자를 찾습니다.Match any whitespace character. (?([^\r\n])\s)(?([^\r\n])\s) Public\sInterface는 구 "Public Interface"와 일치합니다.Public\sInterface matches the phrase "Public Interface".
임의 숫자 문자를 찾습니다.Match any numeric character \d\d \d는 "3456"의 "3", 23"의 "2", "1"의 "1"과 일치합니다.\d matches and "3" in "3456", "2" in 23", and "1" in "1".
유니코드 문자를 찾습니다.Match a Unicode character \uXXXX. 여기서 XXXX는 유니코드 문자 값을 지정합니다.\uXXXX where XXXX specifies the Unicode character value. \u0065는 문자 "e"와 일치합니다.\u0065 matches the character "e".
식별자를 찾습니다.Match an identifier \b[_\w-[0-9]][_\w]*\b\b[_\w-[0-9]][_\w]*\b “type1”과 일치하지만 “&type1” 또는 “#define”과 일치하지 않습니다.Matches "type1" but not "&type1" or "#define".
따옴표 안의 문자열을 찾습니다.Match a string inside quotes ((\".+?\")|('.+?'))((\".+?\")|('.+?')) 작은따옴표 또는 큰따옴표 안의 문자열을 찾습니다.Matches any string inside single or double quotes.
16진수를 찾습니다.Match a hexadecimal number \b0[xX]([0-9a-fA-F])\b\b0[xX]([0-9a-fA-F])\b "0xc67f"와 일치하지만 "0xc67fc67f"와 일치하지 않습니다.Matches "0xc67f" but not "0xc67fc67f".
정수 및 소수를 찾습니다.Match integers and decimals \b[0-9]\.*[0-9]+\b\b[0-9]\.*[0-9]+\b "1.333"과 일치합니다.Matches "1.333".

Tip

Windows 운영 체제에서 대부분 줄은 “\r\n”(캐리지 리턴 뒤에 줄 바꿈)으로 끝납니다.In Windows operating systems, most lines end in "\r\n" (a carriage return followed by a new line). 이들 문자는 표시되지 않지만 편집기에 있고 .NET 정규식 서비스에 전달됩니다.These characters aren't visible, but are present in the editor and are passed to the .NET regular expression service.

참고 항목See also