Visual Studio에서 정규식 사용Using Regular Expressions in Visual Studio

Visual StudioVisual Studio에서는 .NET Framework 정규식을 사용하여 텍스트를 찾고 바꿉니다. uses .NET Framework regular expressions to find and replace text. .NET 정규식에 대한 자세한 내용은 .NET Framework 정규식을 참조하세요.For more information about .NET regular expressions, see .NET Framework Regular Expressions.

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

대체 패턴Replacement patterns

바꾸기 패턴에서 사용되는 정규식에 대한 자세한 내용은 정규식의 대체를 참조하세요.For information about regular expressions that are used in replacement patterns, see Substitutions. 번호가 있는 캡처 그룹을 사용하려는 경우 번호가 있는 그룹을 지정하려면 $1 구문을 사용하고 특정 그룹을 지정하려면 (x) 구문을 사용합니다.To use a numbered capture group, the syntax is $1 to specify the numbered group, and (x) to specify the group in question. 예를 들어 그룹화된 정규식 (\d)([a-z])는 문자열 1a 2b 3c 4d에서 일치 항목 4개를 찾습니다.For example, the grouped regular expression (\d)([a-z]) finds four matches in the following string: 1a 2b 3c 4d. 바꾸기 문자열 z$1은 해당 문자열을 z1 z2 z3 z4로 변환합니다.The replacement string z$1 converts that string to z1 z2 z3 z4.

정규식 예제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.+e는 "feeder"의 "eede"와 일치하지만 "ee"와 일치하지 않습니다.e.+e matches "eede" in "feeder" but not "ee".
임의의 문자를 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 (ie 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+|[\w-[0-9\]]\w)\b\b(\w+|[\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".

참고 항목See also

텍스트 찾기 및 바꾸기Finding and Replacing Text