regexpi
정규 표현식 일치(대/소문자 무시)
구문
설명
은 정규 표현식으로 지정된 문자 패턴과 일치하는 각 startIndex
= regexpi(str
,expression
)str
부분문자열의 시작 인덱스를 대소문자 구분 없이 반환합니다. 일치 항목이 없으면 startIndex
는 빈 배열이 됩니다.
[
은 모든 일치 항목의 시작 인덱스와 끝 인덱스를 반환합니다.startIndex
,endIndex
] = regexpi(str
,expression
)
는 out
= regexpi(str
,expression
,outkey
)outkey
가 규정하는 출력값을 반환합니다. 예를 들어, outkey
가 'match'
인 경우, regexpi
는 시작 인덱스가 아닌 표현식과 일치하는 부분문자열을 반환합니다.
___ = regexpi(___,'forceCellOutput')
은 각 출력 인수를 스칼라 셀로 반환합니다. 셀에는 이전 구문에서 출력값으로 설명된 숫자형 배열이나 부분문자열이 들어 있습니다. 위에 열거된 구문의 입력값이나 출력값 어느 것이든 포함시킬 수 있습니다.
예제
패턴 일치
c
로 시작하고, t
로 끝나며, 그 사이에 하나 이상의 모음이 포함된 단어를 찾습니다.
str = 'bat cat can car COAT court cut ct CAT-scan'; expression = 'c[aeiou]+t'; startIndex = regexpi(str,expression)
startIndex = 1×4
5 17 28 35
startIndex
의 값은 정규 표현식과 일치하는 각 단어의 첫 번째 문자의 인덱스를 나타냅니다.
정규 표현식 'c[aeiou]+t'
는 다음과 같은 패턴을 지정합니다.
c
가 첫 번째 문자여야 합니다.c
다음에는 대괄호로 묶인[aeiou]
안의 문자 중 하나가 와야 합니다.대괄호 안의 패턴은
+
연산자가 지정한 대로 한 번 이상 나타나야 합니다.t
는 마지막 문자여야 하고, 대괄호 안의 패턴과t
사이에는 문자가 없어야 합니다.
대소문자 일치
표현식 전체 또는 부분의 대소문자를 일치시킵니다.
기본적으로, regexpi
는 대/소문자를 무시하는 일치 작업을 수행합니다.
str = 'A character vector with UPPERCASE and lowercase text.'; expression = '\w*case'; matchStr = regexpi(str,expression,'match')
matchStr = 1x2 cell
{'UPPERCASE'} {'lowercase'}
대/소문자를 구분하는 일치 작업을 수행하려면 regexpi
와 같은 구문에 regexp
함수를 사용하십시오.
matchWithRegexp = regexp(str,expression,'match')
matchWithRegexp = 1x1 cell array
{'lowercase'}
regexp
에 대해 대/소문자를 구분하는 일치 작업을 비활성화하려면 'ignorecase'
옵션을 사용하십시오.
matchWithIgnorecase = regexp(str,expression,'match','ignorecase')
matchWithIgnorecase = 1x2 cell
{'UPPERCASE'} {'lowercase'}
표현식이 여러 개인 경우 (?i)
검색 플래그와 (?-i)
검색 플래그를 사용하여 선택한 표현식에 대해 대/소문자를 구분하지 않는 일치 작업을 활성화 및 비활성화합니다.
expression = {'(?-i)\w*case';... '(?i)\w*case'}; matchStr = regexp(str,expression,'match'); celldisp(matchStr)
matchStr{1}{1} = lowercase matchStr{2}{1} = UPPERCASE matchStr{2}{2} = lowercase
입력 인수
str
— 입력 텍스트
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
입력 텍스트로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 중 하나로 지정됩니다. 셀형 배열의 각 문자형 벡터나 string형 배열의 각 문자열은 길이에 제한이 없고 모든 문자를 포함할 수 있습니다.
str
과 expression
이 string형 배열이나 셀형 배열인 경우, 동일한 차원을 가져야 합니다.
데이터형: string
| char
| cell
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
outkey
— 반환할 출력값을 나타내는 키워드
'start'
(디폴트 값) | 'end'
| 'tokenExtents'
| 'match'
| 'tokens'
| 'names'
| 'split'
반환할 출력값을 나타내는 키워드로, 다음 문자형 벡터 중 하나로 지정됩니다.
출력값 키워드 | 반환되는 값 |
---|---|
| 모든 일치 항목의 시작 인덱스, |
| 모든 일치 항목의 끝 인덱스, |
| 모든 토큰의 시작 인덱스와 끝 인덱스 |
|
|
|
|
| 명명된 각 토큰의 이름과 텍스트 |
| 일치하지 않는 |
데이터형: char
| string
option
— 검색 옵션
'once'
| 'warnings'
| 'matchcase'
| 'emptymatch'
| 'dotexceptnewline'
| 'lineanchors'
| ...
검색 옵션으로, 문자형 벡터로 지정됩니다. 쌍을 이루는 옵션: 하나는 디폴트 동작에 대응하는 옵션이고 다른 하나는 디폴트 동작을 재정의할 수 있는 옵션입니다. 옵션 쌍에서 한 옵션만 지정하십시오. 옵션은 어떤 순서로 지정해도 좋습니다.
디폴트 | 재정의 | 설명 |
---|---|---|
|
| 표현식을 가능한 많이 일치시키거나(디폴트 값) 한 번만 일치시킵니다. |
|
| 경고를 표시하지 않거나(디폴트 값) 표시합니다. |
|
| 대소문자 구분을 무시하거나(디폴트) 대소문자를 일치시킵니다. |
|
| 길이가 0인 일치를 무시하거나(디폴트 값), 포함시킵니다. |
|
| 점과 임의의 문자를 일치시키거나(디폴트 값), 새 줄( |
|
|
|
|
| 일치 작업을 수행할 때 공백 문자와 주석을 포함시키거나(디폴트 값), 무시합니다. |
데이터형: char
출력 인수
startIndex
— 각 일치 항목의 시작 인덱스
행 벡터 | 행 벡터로 구성된 셀형 배열
각 일치 항목의 시작 인덱스로, 다음과 같이 행 벡터나 셀형 배열로 반환됩니다.
str
과expression
이 둘 다 문자형 벡터이거나 둘 다 string형 스칼라인 경우 출력값은 행 벡터입니다(또는 일치 항목이 없는 경우 빈 배열임).str
이나expression
중 하나가 문자형 벡터로 구성된 셀형 배열 또는 string형 배열이고, 나머지 인덱스가 문자형 벡터 또는 string형 스칼라이면 출력값은 행 벡터로 구성된 셀형 배열입니다. 출력 셀형 배열은 입력 배열과 동일한 차원을 가집니다.str
과expression
이 모두 셀형 배열이거나 string형 배열인 경우, 동일한 차원을 가져야 합니다. 출력값도 동일한 차원의 셀형 배열이 됩니다.
endIndex
— 각 일치 항목의 끝 인덱스
행 벡터 | 행 벡터로 구성된 셀형 배열
각 일치 항목의 끝 인덱스로, 다음과 같이 행 벡터나 셀형 배열로 반환됩니다.
str
과expression
이 둘 다 문자형 벡터이거나 둘 다 string형 스칼라인 경우 출력값은 행 벡터입니다(또는 일치 항목이 없는 경우 빈 배열임).str
이나expression
중 하나가 문자형 벡터로 구성된 셀형 배열 또는 string형 배열이고, 나머지 인덱스가 문자형 벡터 또는 string형 스칼라이면 출력값은 행 벡터로 구성된 셀형 배열입니다. 출력 셀형 배열은 입력 배열과 동일한 차원을 가집니다.str
과expression
이 모두 셀형 배열이거나 string형 배열인 경우, 동일한 차원을 가져야 합니다. 출력값도 동일한 차원의 셀형 배열이 됩니다.
out
— 일치 항목에 대한 정보
숫자형 배열 | 셀형 배열 | string형 배열 | 구조체형 배열
일치 항목에 대한 정보로, 숫자형, 셀형, string형, 구조체형 배열 중 하나로 반환됩니다. 출력값 정보는 다음과 같이 출력값 키워드(outkey
)에 지정한 값에 따라 달라집니다.
출력값 키워드 | 출력값 설명 | 출력 유형과 차원 |
---|---|---|
| 일치 항목의 시작 인덱스 |
|
| 일치 항목의 끝 인덱스 | |
| 모든 토큰의 시작 인덱스와 끝 인덱스 | 기본적으로 모든 일치 항목을 반환할 때 결과는 다음과 같습니다.
하나의 일치 항목만 반환하기 위해 특정 인덱스 |
|
| 기본적으로 모든 일치 항목을 반환할 때 결과는 다음과 같습니다.
하나의 일치 항목만 반환하기 위해 |
|
| 기본적으로 모든 일치 항목을 반환할 때 결과는 다음과 같습니다.
하나의 일치 항목만 반환하기 위해 특정 인덱스에서 토큰이 예상되었지만 찾을 수 없으면 MATLAB은 토큰에 대해서는 빈 값을, 문자형 벡터에 대해서는 |
| 명명된 각 토큰의 이름과 텍스트 | 모든 일치 항목에 대하여 결과는 다음과 같습니다.
|
| 일치하지 않는 | 모든 일치 항목에 대하여 결과는 다음과 같습니다.
|
세부 정보
토큰
토큰은 일치하는 텍스트의 일부이며 정규 표현식 일부에 부합합니다. 토큰을 만들려면 정규 표현식의 일부를 괄호로 묶으십시오.
예를 들어, 아래 표현식은 형식이 dd-mmm-yyyy
인 날짜를 찾는데, 일, 월, 년에 대한 토큰이 포함되어 있습니다.
str = 'Here is a date: 01-Apr-2020'; expression = '(\d+)-(\w+)-(\d+)'; mydate = regexp(str,expression,'tokens'); mydate{:}
ans = 1×3 cell array {'01'} {'Apr'} {'2020'}
더 쉽게 식별할 수 있도록 토큰에 이름을 연결할 수 있습니다.
str = 'Here is a date: 01-Apr-2020'; expression = '(?<day>\d+)-(?<month>\w+)-(?<year>\d+)'; mydate = regexp(str,expression,'names')
mydate = struct with fields: day: '01' month: 'Apr' year: '2020'
자세한 내용은 정규 표현식의 토큰 항목을 참조하십시오.
확장 기능
스레드 기반 환경
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)