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 = 4×1 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인 일치사항과 'emptymatch' 키워드를 반환합니다.
str = 'abc'; expression = '^'; replace = '__'; newStr = regexprep(str,expression,replace,'emptymatch')
newStr = '__abc'
입력 인수
업데이트할 텍스트로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.
데이터형: char | cell | 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
대체 텍스트로, 다음과 같은 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.
replace가 단일 문자형 벡터이고expression이 문자형 벡터로 구성된 셀형 배열인 경우,regexprep은 각 표현식에 동일한 대체 텍스트를 사용합니다.replace가N개의 문자형 벡터로 구성된 셀형 배열이고expression이 단일 문자형 벡터인 경우,regexprep은 일치 및 대체를N회 시도합니다.replace와expression모두 문자형 벡터로 구성된 셀형 배열인 경우, 둘 다 같은 개수의 요소를 포함해야 합니다.regexprep은 각replace요소를expression에서 일치하는 요소와 짝짓습니다.
대체 텍스트는 다음 표에 나와 있는 대로, 일반 문자, 특수 문자(예: 탭 또는 줄 바꿈) 또는 대체 연산자를 포함할 수 있습니다.
대체 연산자 | 설명 |
|---|---|
| 입력 텍스트에서 현재 일치 항목인 부분 |
| 입력 텍스트에서 현재 일치 항목 앞에 오는 부분 |
| 입력 텍스트에서 현재 일치 항목 다음에 오는 부분( |
|
|
| 명명된 토큰 |
| MATLAB이 명령 |
연산자 | 설명 |
|---|---|
| 경보(경고음) |
| 백스페이스 |
| 폼 피드(FF) |
| 새 줄(Newline) |
| 캐리지 리턴 |
| 가로 탭 |
| 세로 탭 |
| 정규 표현식에서 문자 그대로 일치시키려는 특수 의미를 갖는 임의의 문자(예를 들어, |
데이터형: char | cell | string
검색 또는 대체 옵션으로, 다음 표에 나와 있는 문자형 벡터나 정수 값으로 지정됩니다.
옵션은 세트 단위로 제공됩니다. 세트마다 디폴트 동작에 대응하는 옵션이 하나가 있고 디폴트 동작을 재정의할 수 있는 옵션이 하나 또는 두 개가 있습니다. 한 세트에서 한 옵션만 지정하십시오. 옵션은 어떤 순서로 지정해도 좋습니다.
| 디폴트 | 재정의 | 설명 |
|---|---|---|
|
|
| 표현식에 대한 일치 및 대체를 가능한 많이 수행합니다(디폴트 값). 또는 단 한 번만 수행합니다. |
|
|
| |
|
|
| 경고를 표시하지 않거나(디폴트 값) 표시합니다. |
|
|
| 일치 및 대체를 수행할 때 대/소문자를 일치시키거나(디폴트 값) 무시합니다. |
|
| 일치를 수행할 때 대/소문자를 구분하지 않지만, 다음 구조 중 하나와 일치하는 경우 대체를 수행할 때는 원래 텍스트의 상응하는 문자의 대/소문자를 보존합니다.
원래 텍스트가 이러한 구조 중 하나와 일치하지 않는 경우 대체 텍스트는 모두 소문자가 됩니다. | |
|
|
| 길이가 0인 일치를 무시하거나(디폴트 값), 포함시킵니다. |
|
|
| 점과 임의의 문자를 일치시키거나(디폴트 값), 새 줄( |
|
|
|
|
|
|
| 일치 작업을 수행할 때 공백 문자와 주석을 포함시키거나(디폴트 값), 무시합니다. |
데이터형: char | string
출력 인수
확장 기능
regexprep 함수는 tall형 배열을 완전히 지원합니다. 자세한 내용은 tall형 배열 항목을 참조하십시오.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)