정규식 일치 및 문자열 검색과 대체를 위한 특수 문자
- 업데이트 날짜:2025-08-27
- 9분 (읽기 시간)
정규식을 사용하여 패턴 일치를 구현하는데에는 문자의 특정한 조합이 필요합니다. 정규식을 사용하면 문자열의 일부 또는 서브셋을 일치 또는 검색할 수 있습니다. 예를 들어 정규식을 사용하여 코드 문자열의 변수를 일치시키거나 보고서의 특정 값을 일치시킬 수 있습니다.
정규식 지원은 PCRE 라이브러리 패키지에 의해 제공됩니다. PCRE 라이브러리 패키지의 재배포 라이센스에 대한 더 자세한 정보는 <National Instruments>\_Legal Information 디렉토리를 참조하십시오.
Perl Compatible Regular Expressions에 대한 더 자세한 정보는 www.pcre.org의 Perl 5 Regular Expression 문서를 참조하십시오.
정규식 및 검색 문자열 입력용 특수 문자
[정규식 일치] 함수의 정규식 입력 및 [문자열 검색과 대체] 함수의 검색 문자열 입력에는 다음 테이블의 특수 문자를 사용합니다. 해당 함수에서 마우스 오른쪽 버튼을 클릭한 후 바로 가기 메뉴에서 정규식을 선택하여 [문자열 검색과 대체] 함수에 다음 특수 문자를 사용할 수 있습니다.
|
노트 다음 특수 문자는 [정규식 일치] 함수와 [문자열 검색과 대체] 함수와 함께만 사용할 수 있습니다. [패턴 일치] 함수는 보다 한정된 정규식을 사용하지만 [정규식 일치] 함수보다 실행 속도가 빠릅니다. [패턴 일치] 함수의 정규식에 대한 더 자세한 정보는 패턴 일치를 위한 특수 문자 토픽을 참조하십시오. |
| 특수 문자 | 설명 | 예 |
|---|---|---|
| . (마침표) | 새 라인 문자를 제외한 모든 단일 문자와 일치합니다. 대괄호 안에서 .는 리터럴로 사용됩니다. | 입력 문자열: Welcome to LabVIEW. 정규식: t.... 일치: to La 정규식으로 [z.]를 입력하면 마침표는 리터럴이므로 식은 . 또는 z와 일치합니다. 이 예에서 [z.]는 .를 일치로 반환합니다. |
| * | 앞에 오는 단일 문자나 문자 그룹 또는 문자 클래스를 0번 이상 나타날 수 있는 것으로 표시합니다. 별표는 0번 나타나는 패턴과 일치할 수 있기 때문에 별표가 포함된 정규식은 전체 패턴이 별표로 표시가 된 경우 빈 문자열을 반환할 수 있습니다. 기본적으로 이 양기호가 일치시키는 문자 수에는 제한이 없습니다. | 입력 문자열: Hello LabVIEW! 정규식: el*일치: ellw* 또는 (welcome)* 식은 함수가 다른 일치를 찾지 못하는 경우 빈 문자열을 반환합니다. |
| + | 앞에 오는 단일 문자나 문자 그룹 또는 문자 클래스를 1번 이상 나타날 수 있는 것으로 표시합니다. 기본적으로 이 양기호가 일치시키는 문자 수에는 제한이 없습니다. | 입력 문자열: Hello LabVIEW! 정규식: el+ 일치: ell |
| ? | 앞에 오는 단일 문자나 문자 그룹 또는 문자 클래스를 0번 또는 1번 나타날 수 있는 것으로 표시합니다. 기본적으로 이 양기호가 일치시키는 문자 수에는 제한이 없습니다. 양기호 직후에 사용되는 경우, ?는 양기호가 최소의 횟수로 일치되도록 변경합니다. 변경이 가능한 양기호에는 *, + 및 {}가 있습니다. | 입력 문자열: Hello LabVIEW! 정규식: el?일치: el 입력 문자열: <ul><li>Hello</li><li>LabVIEW</li></ul>정규식: <li>.+?</li>일치: <li>Hello</li> 두 번째 예에서 정규식에서 ?를 제거하면 <li>Hello</li><li>LabVIEW</li>가 새롭게 일치하게 되는데, 이는 + 직후에 ?가 없는 경우 +는 최대 수의 문자와 일치하기 때문입니다. 이 정규식은<li></li> 태그 사이의 문자열과 일치시키는데 사용할 수 있습니다. |
| {n,N} | 앞에 오는 단일 문자, 문자 그룹 또는 문자 클래스를 지정된 횟수만큼 나타날 수 있는 것으로 표시합니다. 여기서 n은 최소 횟수이고, N은 최대 횟수입니다. 1개의 수를 지정할 수도 있습니다. 범위를 지정한 경우 이 양기호는 가능한 최대 횟수에 일치합니다. | 입력 문자열: <ul><li>Hello</li><li>Lab</li><li>VIEW</li><li>!</li></ul>정규식: (<li>.+?</li>){2}일치: <li>Hello</li><li>Lab</li> 입력 문자열: <ul><li>Hello</li><li>Lab</li><li>VIEW</li><li>!</li></ul>정규식: (<li>.+?</li>){1,3}일치: <li>Hello</li><li>Lab</li><li>VIEW</li> 두 번째 예에서 최소 일치 횟수는 1이고, 최대 일치 횟수는 3입니다. 정규식은 지정된 횟수 한도 내에서 최대 횟수와 일치하기 때문에 이 정규식은 3개의 일치를 반환합니다. |
| [] | 지정한 문자 집합의 모든 문자와 일치할 수 있는 문자 클래스를 생성합니다. 예를 들어, [abc]는 a나 b 또는 c와 일치합니다. -를 사용하여 문자의 범위를 지정할 수 있습니다. 예를 들어 [a-z]는 모든 소문자 단일 문자와 일치합니다. [정규식 일치] 함수와 [문자열 검색과 대체] 함수는 ^, -, \를 제외하고 대괄호 안에 있는 특수 문자를 리터럴로 해석합니다. | 입력 문자열: version=14.0.1 정규식: [0-9]+(\.[0-9]+)* 일치: 14.0.1[0-9]라는 식은 어떤 한 자릿수와 일치합니다. 더하기 부호는 이전 문자 클래스인 [0-9]와 1회 이상 가능한 최대 횟수로 일치합니다. 괄호는 문자의 그룹을 생성하며, 이 문자 그룹은 . 문자 및 연속적인 모든 자릿수와 부분 일치합니다. \. 식은 리터럴 . 문자와 일치합니다. 더하기 부호는 이전 문자 클래스인 [0-9]와 1회 이상 가능한 최대 횟수로 일치합니다. 별표 이전 문자 그룹인 (\.[0-9]+)와 0회 이상 일치하기 때문에, 이 정규식은 . 문자가 없는 정수와도 일치합니다. 이 정규식을 사용하여 임의의 정수, 소수, 버전 번호, IPv4 주소 또는 . 문자로 구분된 기타 수열을 일치시킬 수 있습니다. |
| () | 지정한 문자 집합의 전체 문자와 일치할 수 있는 문자 그룹을 생성합니다. 문자 그룹 직후에 나오는 양기호는 그룹 전체에 해당됩니다. 또한 괄호는 각 개별 문자 그룹이 부분 일치를 반환하는 부분 일치를 생성합니다. 다른 문자 그룹 안에 문자 그룹을 넣으면, 정규식은 안의 그룹보다 밖의 그룹의 부분 일치 구문을 먼저 생성합니다. [정규식 일치] 함수 노드를 확장하여 부분 일치 출력에 접근할 수 있습니다. 또한 역참조를 사용하는 식에서 이후 부분 일치를 다시 참조할 수 있습니다. 정규식에서 역참조를 사용하는 방법에 대한 더 자세한 정보는 역참조 섹션을 참조하십시오. | 입력 문자열: Hello LabVIEW! 정규식: (el.)..(L..) 일치: ello Lab 부분 일치 1: ell 부분 일치 2: Lab 입력 문자열: Hello LabVIEW! 정규식: (.(el.).).(L..) 일치: Hello Lab 부분 일치 1: Hello 부분 일치 2: ell 부분 일치 3: Lab |
| | | 가능한 다른 일치를 분리합니다. 이 문자는 여러 문자 그룹 중 하나와 일치시킬 때 유용합니다. (|)를 포함하는 정규식은 가능한 일치의 순서에 관계없이 입력 문자열에서 첫 번째로 일치한 항목을 반환합니다. 예를 들어, dog|cat과 cat|dog 정규식은 the dog chased the cat에서 모두 dog을 반환합니다. | 입력 문자열: value=FALSE total=12.34 token=TRUE 정규식: (value|token)=(TRUE|FALSE) 일치: value=FALSE 부분 일치 1: value 부분 일치 2: FALSE 정규식은 입력 문자열에서 일치하는 첫 번째 항목을 반환합니다. 입력 문자열에서 token=TRUE가 value=FALSE의 앞에 있는 경우, 정규식은 위와 달리 token=TRUE를 일치한 항목으로 반환합니다. |
| ^ | 패턴의 첫 문자로 사용될 때 일치를 문자열의 처음으로 한정합니다. [정규식] 함수 또는 [문자열 검색과 대체] 함수에서 여러 라인? 입력을 참으로 설정하면, ^는 현재 플랫폼의 라인 끝을 사용하여 문자열 내에 있는 각 라인의 시작과 일치됩니다. 또한, 문자 클래스의 처음에 ^을 추가하여 주어진 문자 클래스에 없는 모든 문자와 일치시킬 수 있습니다. 예를 들어, [^0-9]는 숫자가 아닌 모든 문자와 일치합니다. [^a-zA-Z0-9]는 소문자나 대문자가 아니며 숫자가 아닌 모든 문자와 일치합니다. | 입력 문자열: Hello LabVIEW! 정규식: ^[^ ]+일치: Hello 이 정규식은 입력 문자열의 시작 부분에서부터 스페이스 문자를 제외하고 가능한 많은 개수의 문자와 일치합니다. 이 정규식을 사용하여 문자열의 첫번째 워드, 숫자 또는 다른 문자의 조합을 분리할 수 있습니다. 입력 문자열: Hello LabVIEW 정규식: ^LabVIEW 일치: LabVIEW 이 정규식은 여러 라인?이 참으로 설정된 경우에만 LabVIEW와 일치합니다. |
| $ | 패턴의 마지막 문자로 사용될 때 일치를 문자열의 맨 끝으로 한정합니다. [정규식] 함수 또는 [문자열 검색과 대체] 함수에서 여러 라인? 입력을 참으로 설정하면, ^는 현재 플랫폼의 라인 끝을 사용하여 문자열 내에 있는 각 라인의 끝과 일치됩니다. | 입력 문자열: Hello LabVIEW! 정규식: [^]+$ 일치: LabVIEW! 이 정규식은 입력 문자열의 시작 부분에서부터 스페이스 문자를 제외하고 가능한 많은 개수의 문자와 일치합니다. 이 정규식을 사용하여 문자열의 마지막 워드, 숫자 또는 다른 문자의 조합을 분리할 수 있습니다. 입력 문자열: HelloLabVIEW 정규식: Hello$ 일치: Hello 이 정규식은 여러 라인?이 참으로 설정된 경우에만 Hello와 일치합니다. |
| \ | 이 리스트에 있는 백슬래쉬 부호 직후에 나오는 특수 문자의 특수한 의미를 취소하고 대신 리터럴 문자와 일치시킵니다. 다음 Escape 식은 특별한 의미를 갖습니다.
|
입력 문자열: 전체=$12.34 정규식: \$\d+(\.\d{2})? 일치: $12.34\$ 식은 \가 특수한 의미를 취소하기 때문에 리터럴 달러 부호와 일치합니다. \d+ 식은 최대 자리 숫자와 일치하며 최소 1자리 숫자여야 합니다. (\.\d{2})? 식은 . 및 2 자리 숫자와 일치하지만, ?는 정규식의 이 부분이 옵션이 되도록 합니다. 이 정규식을 사용하여 . 문자를 소수점으로 사용하는 달러 값을 일치시킬 수 있습니다. 다른 문자를 소수점으로 사용하는 로캘의 경우 반드시 정규식을 변경해야 합니다. 입력 문자열: NEWtoken=FALSE token=TRUE checkFile=TRUE total=12.34 정규식: \btoken=\w+\s\b\S* 일치: token=TRUE checkFile=TRUE\b가 단어의 시작에서만 token=과 일치되도록 하기 때문에 정규식은 NEWtoken=FALSE에서 token=FALSE와 일치하지 않습니다. \w+는 가능한 최대 워드 문자와 일치하며 최소 1개와 일치하여야 합니다. 이 예에서 \w+는 TRUE와 일치합니다. \s 식은 스페이스 문자입니다. \b\S* 식은 모든 다음 화이트 스페이스 문자를 찾을 때까지 워드의 시작 부분에 있는 모든 화이트 스페이스가 아닌 문자를 일치합니다. 이 예에서 \b\S*는 checkFile=TRUE와 일치합니다. 입력 문자열: Welcome to LabVIEW! 정규식: come\n\S*\t\w*\x21 일치: come to LabVIEW!come\n 식은 새 라인 문자의 앞에 있는 리터럴 문자와 일치합니다. \S*는 가능한 최대 수의 화이트 스페이스가 아닌 문자와 일치하며, 이 경우 to라는 단어와 일치합니다. \t 식은 to와 LabVIEW! 사이에 있는 탭과 일치합니다. \w* 식은 가능한 최대 수의 워드 문자와 일치하며, 이 경우 LabVIEW라는 단어와 일치합니다. \x21라는 식은 21이 느낌표에 대한 16 진수 코드이므로 느낌표와 일치합니다. |
|
팁 일치를 문자열의 시작과 끝에 한정하려면, 패턴의 첫 문자에 ^을 사용하고 패턴의 끝 문자에 $를 사용합니다. 예를 들어, ^LabVIEW$는 LabVIEW!나 Hello LabVIEW가 아닌 LabVIEW에서 LabVIEW와 일치합니다. 일치를 문자열의 시작과 끝에 한정하려면 전체 문자열이 일치해야 합니다. |
대체 문자열용 특수 문자
[문자열 검색과 대체] 함수의 대체 문자열 입력에서 다음의 특수 문자를 사용합니다.
| 특수 문자 | 설명 | 예 |
|---|---|---|
| $n 또는 ${n} | 지정된 부분 일치의 앞 또는 뒤에 지정한 문자열을 삽입합니다. [문자열 검색과 대체] 함수의 대체 문자열 입력에 역참조를 사용하는 방법에 대한 더 자세한 정보는 역참조 섹션을 참조하십시오. 정규식에 부분 일치가 9개보다 많고 10번째 이후의 부분 일치를 참조하려는 경우 ${n}을 사용하십시오. 함수는 $ 이후에 나오는 숫자의 첫 자릿수만 읽기 때문에 $12는 첫번째 부분 일치만을 삽입합니다. 그러나 ${12}는 12번째 부분 일치를 삽입합니다. | 입력 문자열 : Welcome LabVIEW검색 문자열 : (LabVIEW)대체 문자열 : to $1!결과 문자열: : Welcome to LabVIEW!입력 문자열 : Welcome to the LabVIEW Help!검색 문자열 : We(l)(co(m)e)((to)(t(he) (Lab)(VIE(W)) He(lp)(!)대체 문자열 : $7${11}ful${12}결과 문자열 : helpful! |
| \$n | 대체 문자열에서 사용하는 모든 특수 문자의 해석을 취소합니다. | 입력 문자열 : total=123 per day검색 문자열 : (\d+)(per \w*)?대체 문자열 : \$1$2결과 문자열 : total=$123 per day 이 예에서 리터럴 문자 $를 삽입하려면 \$를 사용합니다. 리터럴 \를 나타내려면 \\를 사용합니다. |
역참조
역참조를 사용하여 같은 정규식에서의 이전의 일치를 참조할 수 있습니다. 역참조를 사용하면 식의 일부에서 문자 그룹을 사용하여 부분 일치를 생성하고, 이후 식의 후반부에서 그와 정확히 동일한 부분 일치를 반환할 수 있습니다.
[정규식 일치] 함수의 정규식 입력 또는 [문자열 검색과 대체] 함수의 검색 문자열 입력에 참조를 지정하려면, \1을 사용하여 첫번째 부분 일치를 참조하고, \2를 사용하여 두번째 부분 일치를 참조하는 방법을 사용합니다. 예를 들어, 다음과 같은 정규식을 생각해 봅니다:
(["*$])(\w+)\1\2\1
첫 번째 문자 그룹에는 ", * 또는 $와 일치하는 문자 클래스가 포함되어 있습니다. 두 번째 문자 그룹은 하나 이상의 워드 문자와 일치합니다. 첫 번째 역참조인 \1은 첫 번째 그룹인 (["*$])와 동일한 부분 일치를 반환합니다. 두 번째 역참조인 \2는 두 번째 그룹인 (\w+)와 동일한 부분 일치를 반환합니다. 세 번째 역참조인 \1는 첫번째 역참조와 동일하며, 첫번째 문자 그룹과 동일한 부분 일치를 반환합니다.
이 예는 "foo"foo", *bar*bar*, $baz$baz$와 같은 문자열을 일치로 반환하지만, "foo$foo" 또는 "foo*bar"와 같은 문자열은 일치로 반환하지 않습니다.
대체 문자열의 역참조
[문자열 검색과 대체] 함수를 정규식 모드로 사용하는 경우, 검색 문자열 입력에서 부분 일치를 참조하는 대체 문자열 입력에 역참조를 지정할 수 있습니다. $1을 사용하여 첫번째 부분 일치를 참조하고, $2를 사용하여 두번째 부분 일치를 참조하는 방법을 사용합니다. [문자열 검색과 대체] 함수의 대체 문자열 입력에서만 다음의 특수 문자를 사용할 수 있습니다. 다음의 특수 문자를 사용하여 지정된 일치 그룹 앞이나 뒤에 지정한 문자열을 삽입합니다. 다음 규칙을 고려하십시오:
입력 문자열 : $value "TRUE"TRUE" *NULL검색 문자열 : (["*$])(\w+)\1\2\1대체 문자열 : $1$2value$1결과 문자열 : $value "TRUEvalue" *NULL
이 예에서는 대체 문자열의 $1 역참조가 검색 문자열의 첫번째 부분 일치를 참조합니다. 마찬가지로 $2 역참조는 검색 문자열의 두번째 부분 일치를 참조합니다.