정규식 ‘app.e’는 ‘apple’, ‘appLe’, ‘app-e’, ‘app e’가 매칭된다.
정규식 ‘^app’는 ‘apple and orange’는 매칭되지만 ‘orange and apple’는 매칭되지 않는다.
정규식 ‘ple$’는 ‘orange and apple’는 매칭되지만 ‘apple and orange’는 매칭되지 않는다.
정규식 ‘appl[a-z]’은 ‘apple’, ‘applz’와 같이 가장 마지막에 소문자가 오는 경우는 매칭된다.
정규식 ‘appl[^a-z]’은 위와 반대로 마지막에 소문자가 오는 경우를 제외한 모든 경우에 매칭된다.
정규식 ‘ap*le’는 ‘ale’, ‘aple’, ‘apppple’와 같이 p가 0회 이상 반복되는 모든 경우와 매칭된다(*는 0회 이상 반복)
정규식 ‘ap+le’는 ‘aple’, ‘appple’와 매칭되지만 ‘ale’는 매칭되지 않는다(+는 1회 이상 반복)
정규식 ‘ap?le’는 ‘ale’, ‘aple’와 매칭되지만 ‘apple’, ‘appple’와는 매칭되지 않는다(0회 또는 1회 반복)
확장문자열
\w : 유니코드인 경우 숫자, 밑줄을 포함하는 모든 언어의 표현 가능한 문자
\W : 유니코드인 경우 숫자, 밑줄과 표현 가능한 문자를 제외한 나머지 문자
\d : 유니코드인 경우 [0-9]를 포함하는 모든 숫자
\D : 유니코드인 경우 숫자를 제외한 모든 문자
\s : 유니코드인 경우 [\t\n\r\f\v]를 포함하는 공백 문자
\S : 유니코드인 경우 공백문자를 제외한 모든 문자
\b : 단어의 시작과 끝의 빈 공백
\B : 단어의 시작과 끝이 아닌 빈 공백
\\ : 역슬래시(\) 문자 자체를 의미
\[숫자] : 지정된 숫자만큼 일치하는 문자열을 의미
=============================== RESTART: Shell ===============================
>>> import re
>>> bool(re.match('[0-9]*th',' 35th'))
False
>>> bool(re.search('[0-9]*th',' 35th'))
True
(match 공백부터 인지, search 공백이 있어도 찾아서 결과보여줌)
>>> bool(re.match('ap','this is apple'))
False
>>> bool(re.search('ap','this is apple'))
True
(중간에이있는 문장을찾지 못함. )
--로우 문자열 표기법 (raw string notation)
>>> bool(re.search('\\\\\w+','\\apple'))
True
(정규 표현식에서는 \\ 빽슬러쉬 2번을 감지하기위해서는 4번을 사용한다.)
>>> bool(re.search(r'\\\w+',r'\apple'))
True
(조금더 간결하게, r. 을 붙여서 가공 하지 않은 정보로 찾는다)
'IT 이야기 > Programming' 카테고리의 다른 글
정규식 패턴 (0) | 2017.05.31 |
---|---|
문자열 (0) | 2017.05.31 |
문자열 처리함수 (0) | 2017.05.31 |
이스케리프 문자 (0) | 2017.05.31 |
open (파일관리) (0) | 2017.05.31 |