matlab 정규 표현 식

6220 단어
정규 표현 식 은 하나의 표현 식 (한 줄 의 문자) 으로 특정한 문자열 모드 를 정의 합 니 다. 정규 표현 식 을 이용 하여 큰 단락 의 문 자 를 복잡 하 게 찾 고 교체 할 수 있 습 니 다.
Matlab 에서 제공 하 는 정규 표현 식 함 수 는 세 가지 가 있 습 니 다.
  • regexp - 문자열 을 찾 는 데 사용 되 며 대소 문자 가 민감 합 니 다.
  • regexpi - 문자열 을 찾 는 데 사용 되 며 대소 문자 가 민감 하지 않 습 니 다.
  • regexprep - 문자열 을 찾 고 교체 하 는 데 사용 합 니 다.

  • 사용법 (regexpi 를 예 로 들 면):
    [start end extents match tokens names] = regexpi('str', 'expr') 
    start 는 문자열 과 일치 하 는 시작 위치 입 니 다.end 는 문자열 과 일치 하 는 종료 위치 입 니 다.extents 는 확장 내용 으로 'tokens' 인디케이터 와 함께 사용 하여 tokens 가 나타 나 는 위 치 를 표시 합 니 다.match 에서 찾 은 일치 하 는 문자열;tokens 는 정규 표현 식 에 표 시 된 문자열 과 일치 합 니 다.names 는 일치 하 는 이름 표시 이름 입 니 다.
    모든 출력 이 필요 하지 않 으 면 다음 방식 으로 선택 한 출력 을 할 수 있 습 니 다.
    [v1 v2 ...] = regexpi('str', 'expr', 'q1', 'q2', ...)
    'q1', 'q2'... 'start', 'end', 'tokens',' tokens Extents', 'match', 'names' 중 하나 로 의미 가 앞에서 말 한 것 과 같다.v1, v2... 의 출력 순 서 는 q1, q2... 과 일치 합 니 다. 
    **********************
    A: 문장 부호
    **********************
    ....................................................................
    영어 맞 춤 법 게임 을 하고 있다 고 가정 하고 세 글자 의 단 어 를 찾 으 려 면 't' 자모 로 시작 하여 'n' 자모 로 끝내 야 합 니 다.또한 영어 사전 이 있 습 니 다. 정규 표현 식 으로 모든 내용 을 검색 할 수 있 습 니 다.이 정규 표현 식 을 만 들 려 면 마스크 인 문장 기호 '를 사용 할 수 있 습 니 다.이렇게 하면 완전한 표현 식 은 t. n 입 니 다. tan, ten, tin 과 ton 과 일치 하고 t \ # n, tpn 심지어 t n 과 일치 하 며 다른 의미 없 는 조합 도 많 습 니 다.이것 은 문장 기호 가 모든 문자 와 일치 하기 때 문 입 니 다. 즉, 정규 표현 식 t. n 이 ten, tin, ton, t n, tpn, t \ # n 과 일치 하기 때 문 입 니 다.t@n기다리다
    matlab 실례:
    clear;clc
    
    str='ten,&8yn2tin6ui>&ton, t n,-356tpn,t#n,4@).,t@nT&nY';
    
    pat='t.n';
    
    o1=regexpi(str,pat,'start')             % 'start'     o1                 
    
    o2=regexpi(str,pat,'end')               % 'end'     o2                 
    
    o3=regexpi(str,pat,'match')             % 'match'     o3            
    
    [o11,o22,o33]=regexpi(str,pat,'start','end','match')            %           
    출력:
    o1 =
    1 10 18 23 31 35 44 47
    o2 =
    3 12 20 25 33 37 46 49
    o3 =
    'ten' 'tin' 'ton' 't n' 'tpn' 't#n' 't@n' 'T&n'
    o11 =
    1 10 18 23 31 35 44 47
    o22 =
    3 12 20 25 33 37 46 49
    o33 =
    'ten' 'tin' 'ton' 't n' 'tpn' 't#n' 't@n' 'T&n'
    **********************
    B: 괄호 기호
    **********************
    [oum] - 괄호 중 임의의 것 과 일치 합 니 다.
    문장 부호 의 일치 범위 가 너무 넓다 는 문 제 를 해결 하기 위해 서 는 괄호 ([]) 에서 의미 있 는 문 자 를 지정 할 수 있 습 니 다.이 때 는 괄호 안에 지정 한 문자 만 일치 합 니 다.즉, 정규 표현 식 t [aeio] n 은 tan, Ten, tin, toN 등 과 만 일치 합 니 다.그러나 Tmn, taen 은 일치 하지 않 습 니 다. 괄호 안에 한 글자 만 일치 할 수 있 기 때 문 입 니 다.
    matlab 실례:
    clear;clc
    
    str='ten,&8yn2tin6ui>&ton, t n,-356tpn,t#n,4@).,t@nT&nY';
    
    pat='t[aeiou]n';                      
    
    [o11,o22,o33]=regexpi(str,pat,'start','end','match')   
    출력:
    o11 =
    1 10 18
    o22 =
    3 12 20
    o33 =
    'ten' 'tin' 'ton'
    **********************
    C: 괄호 안에 있 는 연결 부
    **********************
    '[c1 - c2]' - 문자 c1 부터 문자 c2 까지 끝 나 는 알파벳 시퀀스 (알파벳 순서대로) 중 임의의 것 과 일치 합 니 다.예 를 들 어 [a - c] 는 a, b, c, A, B, C 와 일치 합 니 다. 즉 정규 표현 식 t [a - z] n 은 tan, tbn, tcn, tdn, ten,..., txn, tyn, tzn 과 일치 합 니 다.
    matlab 실례:
    clear;clc
    
    str='ten,&8yn2tin6ui>&ton, t n,-356tpn,t#n,4@).,t@nT&nY';
    
    pat='t[a-z]n';                        
    
    [o11,o22,o33]=regexpi(str,pat,'start','end','match')   
    출력:
    o11 =
    1 10 18 31
    o22 =
    3 12 20 33
    o33 =
    'ten' 'tin' 'ton' 'tpn'
    **********************
    D: 특수 문자
    **********************
    \. 등 - 즉, '\' 가 안내 하 는 것 은 특별한 의미 가 있 거나 직접 입력 할 수 없 는 단일 문 자 를 의미 합 니 다.
    fprintf 함수 출력 을 사용 할 때 우 리 는 리 턴 부 호 를 대체 하 는 데 자주 사용 합 니 다. 이것 도 마찬가지 입 니 다. 정규 표현 식 에 리 턴 부 호 를 표시 합 니 다.비슷 한 것 은 \ t 가로 탭 문자, '\ *' 는 '*' 등 이 있다.다음 상황 은 정규 표현 식 에서 문법 적 역할 을 하 는 문 자 를 조회 하 는 데 사 용 됩 니 다. 자세 한 내용 은 다음 과 같 습 니 다.
    다음은 단일 문자 와 일치 하 는 전의 문자 정규 표현 식 과 일치 하 는 값 입 니 다.
    \ xN 또는 \ x {N} 8 진수 가 N 인 문자 와 일치 합 니 다.
    \ oN 또는 \ o {N} 16 진수 가 N 인 문자 와 일치 합 니 다.
    \a Alarm(beep)
    \b Backspace
    수평 탭
    New line
    수직 탭
    \ f 페이지 바 꾸 기
    \ r Enter 문자
    \e Escape
    \ c 정규 표현 식 에 문법 적 기능 이나 특수 한 의미 가 있 는 문자 c 는 \ \ c 로 일치 해 야 하 며, 예 를 들 어 정규 표현 식 \. 일치 해 야 하 며, \ \ 정규 표현 식 \ \ \ 로 일치 해 서 는 안 됩 니 다.
    matlab 실례:
    clear;clc
    
    str='l.[a-c]i.$.a';
    
    pat1='.';pat2='\.';
    
    o=regexpi(str,pat1,'match')
    
    o1=regexpi(str,pat2,'match')
    출력:
    o =
    'l' '.' '[' 'a' '-' 'c' ']' 'i' '.' '$' '.' 'a'
    o1 =
    '.' '.' '.'
    **********************
    E: 클래스 표현 식
    **********************
    \ w, \ s 와 \ d 등 - 특정한 문자 중 하나 와 일치 합 니 다.
    위의 표 의 전의 문자 와 다 릅 니 다. \ w, \ s, \ d 등 과 일치 하 는 것 은 특정한 문자 가 아니 라 특정한 문자 입 니 다.구체 적 인 설명 은 다음 과 같다.
    \ w 는 임의의 단일 문자 와 일치 하 며 [a - zA - Z0 - 9] 에 해당 합 니 다.
    \ s 는 임의의 공백 문자 와 일치 합 니 다. [\ t \ f \ r] 에 해당 합 니 다.
    \ \ d 는 임의의 단일 숫자 와 일치 하 며 [0 - 9] 에 해당 합 니 다.
    \ S 는 공백 부 호 를 제외 한 임의의 단일 문자 와 일치 합 니 다. [^ \ t \ \ f \ r] - 괄호 중의 ^ 는 반 대 를 표시 합 니 다.
    \ \ W 는 임의의 단일 문자 와 일치 하 며 [^ a - zA - Z0 - 9] 에 해당 합 니 다.
    \ \ D 는 숫자 문 자 를 제외 한 임의의 단일 문자 와 일치 하 며 [^ 0 - 9] 에 해당 합 니 다.
    matlab 실례:
    s='This city has a population of more than 1,000,000.';
    
    ptn='\d';
    
    regexp(s,ptn,'match')
    출력:
    ans =
    '1' '0' '0' '0' '0' '0' '0'
    ………………………………………………………………………………
    미 완성 계속...

    좋은 웹페이지 즐겨찾기