이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
regexprep
정규 표현식을 사용하여 텍스트 바꾸기
구문
설명
은 newStr
= regexprep(str
,expression
,replace
)str
에서 expression
과 일치하는 텍스트를 replace
에 표현된 텍스트로 바꿉니다. regexprep
함수는 업데이트된 텍스트를 newStr
에 반환합니다.
str
이 한 조각의 텍스트인 경우(문자형 벡터나 string형 스칼라)newStr
도 같은 유형을 가진 한 조각의 텍스트가 됩니다.newStr
은expression
또는replace
가 문자형 벡터로 구성된 셀형 배열이거나 string형 배열일 때도 하나의 텍스트 조각이 됩니다.expression
이 셀형 배열이거나 string형 배열인 경우,regexprep
은 첫 번째 표현식을str
에 적용한 다음, 각 후속 표현식을 직전 결과에 적용합니다.str
이 셀형 배열이거나 string형 배열인 경우newStr
은str
과 같은 차원의 셀형 배열이거나 string형 배열이 됩니다.str
의 각 요소에 대해regexprep
함수는 각 표현식을 차례대로 적용합니다.expression
에 대한 일치 항목이 없는 경우newStr
은str
과 같습니다.
예제
텍스트 업데이트하기
M
으로 시작하고 y
로 끝나고 이 두 문자 사이에 적어도 하나 이상의 문자가 있는 단어를 바꿉니다.
str = 'My flowers may bloom in May'; expression = 'M(\w+)y'; replace = 'April'; newStr = regexprep(str,expression,replace)
newStr = 'My flowers may bloom in April'
대체 텍스트에 토큰 포함하기
토큰에서 'walk'
뒤에 오는 글자를 확인하여 'walk up'
구의 변형 형태를 바꿉니다.
str = 'I walk up, they walked up, we are walking up.'; expression = 'walk(\w*) up'; replace = 'ascend$1'; newStr = regexprep(str,expression,replace)
newStr = 'I ascend, they ascended, we are ascending.'
대체 텍스트에 동적 표현식 포함하기
upper
함수를 사용하여 문장의 시작에 있는 소문자를 같은 글자의 대문자로 바꿉니다.
str = 'here are two sentences. neither is capitalized.'; expression = '(^|\.)\s*.'; replace = '${upper($0)}'; newStr = regexprep(str,expression,replace)
newStr = 'Here are two sentences. Neither is capitalized.'
이 정규 표현식은 문자형 벡터 (^)
의 시작 점, 또는 점 (\.)
과 공백 (\s*)
으로 구성된 덩어리 뒤에 오는 단일 문자(.
)를 일치시킵니다. replace
표현식은 현재 일치하는 문자($0
)에 대해 upper
함수를 호출합니다.
여러 조각의 텍스트 업데이트하기
문자형 벡터 집합에서 같은 문자가 두 번 연속으로 나오는 각각의 경우를 기호 '--'
로 바꿉니다.
str = { ... 'Whose woods these are I think I know.' ; ... 'His house is in the village though;' ; ... 'He will not see me stopping here' ; ... 'To watch his woods fill up with snow.'}; expression = '(.)\1'; replace = '--'; newStr = regexprep(str,expression,replace)
newStr = 4x1 cell
{'Whose w--ds these are I think I know.'}
{'His house is in the vi--age though;' }
{'He wi-- not s-- me sto--ing here' }
{'To watch his w--ds fi-- up with snow.'}
원래 텍스트의 대/소문자 유지하기
일치사항을 찾을 때 정규 표현식에서 대/소문자 일치를 무시하지만, 업데이트할 때는 원래 텍스트의 대/소문자를 유지합니다.
str = 'My flowers may bloom in May'; expression = 'M(\w+)y'; replace = 'April'; newStr = regexprep(str,expression,replace,'preservecase')
newStr = 'My flowers april bloom in April'
길이가 0인 일치사항 바꾸기
'^'
연산자를 사용하여 문자형 벡터로 구성된 시작부에 텍스트를 삽입합니다. 이것은 길이가 0인 일치사항과 'emptymatch'
키워드를 반환합니다.
str = 'abc'; expression = '^'; replace = '__'; newStr = regexprep(str,expression,replace,'emptymatch')
newStr = '__abc'
입력 인수
str
— 업데이트할 텍스트
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
업데이트할 텍스트로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.
데이터형: char
| cell
| string
expression
— 정규 표현식
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
정규 표현식으로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 중 하나로 지정됩니다. 각 표현식은 str
에서 일치시킬 패턴을 지정하는 문자, 메타문자, 연산자, 토큰, 플래그를 포함할 수 있습니다.
다음 테이블은 정규 표현식의 요소를 설명합니다.
메타문자
메타문자는 문자, 문자 범위, 숫자 및 공백 문자를 나타냅니다. 메타문자를 사용하여 일반화된 문자 패턴을 생성할 수 있습니다.
메타문자 | 설명 | 예제 |
---|---|---|
| 임의의 단일 문자입니다(공백 포함). |
|
| 대괄호 내에 포함된 임의의 문자입니다. |
|
| 대괄호 내에 포함되지 않은 임의의 문자입니다. |
|
|
|
|
| 임의의 영문자, 숫자, 밑줄 문자 중 하나입니다. 영어 문자 집합의 경우 |
|
| 영문자, 숫자, 밑줄이 아닌 임의의 문자입니다. 영어 문자 집합의 경우 |
|
| 임의의 공백 문자로 |
|
| 공백이 아닌 임의의 문자로 |
|
| 임의의 숫자로 |
|
| 숫자가 아닌 임의의 문자로 |
|
| 8진수 값 |
|
| 16진수 값 |
|
문자 표현
연산자 | 설명 |
---|---|
| 경보(경고음) |
| 백스페이스 |
| 폼 피드(FF) |
| 새 줄(Newline) |
| 캐리지 리턴 |
| 가로 탭 |
| 세로 탭 |
| 정규 표현식에서 문자 그대로 일치시키려는 특수 의미를 갖는 임의의 문자(예를 들어, |
수량자
수량자는 패턴이 일치하는 텍스트에서 나타나야 하는 패턴의 횟수를 지정합니다.
수량자 | 표현식이 나타나는 횟수 | 예 |
---|---|---|
| 연속 0회 이상입니다. |
|
| 0회 또는 1회입니다. |
|
| 연속 1회 이상입니다. |
|
| 연속
|
|
| 연속
|
|
| 정확하게 연속
|
|
수량자는 다음 표에 설명되어 있는 세 가지 모드로 나타날 수 있습니다. q는 이전 표에 나와 있는 수량자 중 하나를 나타냅니다.
모드 | 설명 | 예제 |
---|---|---|
| 최대 일치 표현식(Greedy Expression): 가능한 한 많은 문자와 일치시킵니다. | 텍스트
|
| 최소 일치 표현식(Lazy Expression): 필요한 최소한의 문자와 일치시킵니다. | 텍스트
|
| 독점적 일치 표현식(Possessive Expression): 가능한 한 많이 일치시킵니다. 단, 텍스트의 일부를 다시 돌아가서 검색하지는 않습니다. | 텍스트 |
그룹화 연산자
그룹화 연산자를 사용하면 토큰을 캡처하거나, 하나의 연산자를 여러 요소에 적용하거나, 특정 그룹의 역추적을 비활성화할 수 있습니다.
그룹화 연산자 | 설명 | 예제 |
---|---|---|
| 표현식의 요소를 그룹화하고 토큰을 캡처합니다. |
|
| 그룹화를 수행하지만 토큰을 캡처하지는 않습니다. |
그룹화를 사용하지 않을 경우, |
| 아토믹 단위로 그룹화합니다. 일치 작업을 완료하기 위해 그룹 내에서 역추적을 수행하지 않으며 토큰을 캡처하지 않습니다. |
|
| 표현식
여는 괄호 다음에 |
|
앵커(Anchors)
표현식에 포함된 앵커는 입력 텍스트나 단어의 시작 또는 끝 부분에 일치됩니다.
앵커(Anchor) | 일치 항목 | 예제 |
---|---|---|
| 입력 텍스트의 시작 부분입니다. |
|
| 입력 텍스트의 끝 부분입니다. |
|
| 단어의 시작 부분입니다. |
|
| 단어의 끝부분입니다. |
|
전후방 탐색 어설션(Lookaround Assertion)
전후방 탐색 어설션(Lookaround Assertion)은 찾으려는 일치 항목 바로 앞이나 뒤에 오는 패턴을 검색합니다. 검색 결과에 자신은 포함시키지 않습니다.
포인터는 현재 위치에 그대로 유지되며 test
표현식에 대응하는 문자는 캡처되거나 삭제되지 않습니다. 따라서, 전방 탐색 어설션은 겹치는 문자 그룹과 일치할 수 있습니다.
전후방 탐색 어설션 | 설명 | 예제 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
표현식 앞에 전방 탐색 어설션(Lookahead Assertion)을 지정하는 경우 이 연산은 논리 AND
와 일치합니다.
작업 | 설명 | 예제 |
---|---|---|
|
|
|
|
|
|
논리 연산자 및 조건 연산자
논리 연산자와 조건 연산자를 사용하여 특정 조건의 상태를 테스트한 후, 해당하는 경우 다음에 일치시킬 패턴을 확인하는 데 그 결과를 사용할 수 있습니다. 이러한 연산자는 논리 OR
및 if
또는 if/else
조건을 지원합니다.
조건은 토큰, 전후방 탐색 연산자, (?@cmd)
형식의 동적 표현식 중 하나일 수 있습니다. 동적 표현식은 논리값이나 숫자형 값을 반환해야 합니다.
조건 연산자 | 설명 | 예제 |
---|---|---|
| 표현식
|
|
| 조건 |
|
| 조건 |
|
토큰 연산자
토큰은 정규 표현식의 일부를 괄호로 묶어 정의하며 일치하는 텍스트의 일부분입니다. 텍스트에 포함된 순서대로 토큰(순서형 토큰)을 참조하거나 더욱 용이하게 코드를 유지 관리하고 읽기 편한 출력값을 생성하도록 토큰에 이름을 할당할 수 있습니다.
순서형 토큰 연산자 | 설명 | 예제 |
---|---|---|
| 토큰에서 괄호 안의 표현식과 일치하는 문자를 캡처합니다. |
|
|
|
|
|
|
|
명명된 토큰 연산자 | 설명 | 예제 |
---|---|---|
| 명명된 토큰에서 괄호 안의 표현식과 일치하는 문자를 캡처합니다. |
|
|
|
|
| 명명된 토큰이 검색되는 경우 |
|
참고
표현식에 중첩 괄호가 있는 경우, MATLAB®은 가장 바깥쪽에 있는 괄호 세트에 대응하는 토큰을 캡처합니다. 예를 들어, 검색 패턴 '(and(y|rew))'
가 주어진 경우 MATLAB은 'y'
또는 'rew'
에 대한 토큰이 아니라 'andrew'
에 대한 토큰을 생성합니다.
동적 정규 표현식
동적 표현식을 사용하면 MATLAB 명령 또는 정규 표현식을 실행하여 일치하는 텍스트를 확인할 수 있습니다.
동적 표현식을 묶는 괄호는 캡처 그룹을 생성하지 않습니다.
연산자 | 설명 | 예제 |
---|---|---|
|
구문 분석 시, |
|
|
|
|
|
|
|
동적 표현식 내에 다음 연산자를 사용하여 대체 텍스트를 정의합니다.
대체 연산자 | 설명 |
---|---|
| 입력 텍스트에서 현재 일치 항목인 부분 |
| 입력 텍스트에서 현재 일치 항목 앞에 오는 부분 |
| 입력 텍스트에서 현재 일치 항목 다음에 오는 부분( |
|
|
| 명명된 토큰 |
| MATLAB이 명령 |
설명
문자 | 설명 | 예제 |
---|---|---|
(?#comment) | 정규 표현식에 주석을 삽입합니다. 입력값과 일치시킬 때 주석 텍스트는 무시됩니다. |
|
검색 플래그
검색 플래그는 일치시키는 표현식의 동작을 수정합니다. 검색 플래그 대신 표현식에 option
입력 인수를 전달하여도 됩니다.
플래그 | 설명 |
---|---|
(?-i) | 문자의 대/소문자를 일치시킵니다( |
(?i) | 문자의 대/소문자를 일치시키지 않습니다( |
(?s) | 임의의 문자를 포함하는 패턴에서 점( |
(?-s) | 새 줄(Newline) 문자가 아닌 임의의 문자를 포함하는 패턴에서 점을 일치시킵니다. |
(?-m) | 텍스트의 시작 부분 및 끝 부분에서 |
(?m) | 라인의 시작 부분과 끝부분에서 |
(?-x) | 일치 작업을 수행할 때 공백 문자와 주석을 포함시킵니다(디폴트 값). |
(?x) | 일치 작업을 수행할 때 공백 문자와 주석을 무시합니다. 공백 문자 및 |
플래그가 수정하는 표현식은 다음과 같이 괄호 다음에 나타나거나
(?i)\w*
다음과 같이 괄호 안에서 플래그가 콜론(:
)으로 구분된 형태로 나타날 수 있습니다.
(?i:\w*)
두 번째 구문을 사용하면 더 큰 표현식의 일부분에 대한 동작을 변경할 수 있습니다.
데이터형: char
| cell
| string
replace
— 대체 텍스트
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
대체 텍스트로, 다음과 같은 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.
replace
가 단일 문자형 벡터이고expression
이 문자형 벡터로 구성된 셀형 배열인 경우,regexprep
은 각 표현식에 동일한 대체 텍스트를 사용합니다.replace
가N
개의 문자형 벡터로 구성된 셀형 배열이고expression
이 단일 문자형 벡터인 경우,regexprep
은 일치 및 대체를N
회 시도합니다.replace
와expression
모두 문자형 벡터로 구성된 셀형 배열인 경우, 둘 다 같은 개수의 요소를 포함해야 합니다.regexprep
은 각replace
요소를expression
에서 일치하는 요소와 짝짓습니다.
대체 텍스트는 다음 표에 나와 있는 대로, 일반 문자, 특수 문자(예: 탭 또는 줄 바꿈) 또는 대체 연산자를 포함할 수 있습니다.
대체 연산자 | 설명 |
---|---|
| 입력 텍스트에서 현재 일치 항목인 부분 |
| 입력 텍스트에서 현재 일치 항목 앞에 오는 부분 |
| 입력 텍스트에서 현재 일치 항목 다음에 오는 부분( |
|
|
| 명명된 토큰 |
| MATLAB이 명령 |
연산자 | 설명 |
---|---|
| 경보(경고음) |
| 백스페이스 |
| 폼 피드(FF) |
| 새 줄(Newline) |
| 캐리지 리턴 |
| 가로 탭 |
| 세로 탭 |
| 정규 표현식에서 문자 그대로 일치시키려는 특수 의미를 갖는 임의의 문자(예를 들어, |
데이터형: char
| cell
| string
option
— 검색 또는 대체 옵션
'once'
| N
| 'warnings'
| 'ignorecase'
| 'preservecase'
| 'emptymatch'
| 'dotexceptnewline'
| 'lineanchors'
| ...
검색 또는 대체 옵션으로, 다음 표에 나와 있는 문자형 벡터나 정수 값으로 지정됩니다.
옵션은 세트 단위로 제공됩니다. 세트마다 디폴트 동작에 대응하는 옵션이 하나가 있고 디폴트 동작을 재정의할 수 있는 옵션이 하나 또는 두 개가 있습니다. 한 세트에서 한 옵션만 지정하십시오. 옵션은 어떤 순서로 지정해도 좋습니다.
디폴트 | 재정의 | 설명 |
---|---|---|
|
| 표현식에 대한 일치 및 대체를 가능한 많이 수행합니다(디폴트 값). 또는 단 한 번만 수행합니다. |
|
| |
|
| 경고를 표시하지 않거나(디폴트 값) 표시합니다. |
|
| 일치 및 대체를 수행할 때 대/소문자를 일치시키거나(디폴트 값) 무시합니다. |
| 일치를 수행할 때 대/소문자를 구분하지 않지만, 대체를 수행할 때는 원래 텍스트의 상응하는 문자의 대/소문자를 보존합니다. | |
|
| 길이가 0인 일치를 무시하거나(디폴트 값), 포함시킵니다. |
|
| 점과 임의의 문자를 일치시키거나(디폴트 값), 새 줄( |
|
|
|
|
| 일치 작업을 수행할 때 공백 문자와 주석을 포함시키거나(디폴트 값), 무시합니다. |
데이터형: char
| string
출력 인수
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 완전히 지원합니다. 자세한 내용은 tall형 배열 항목을 참조하십시오.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)