IT 이야기/Programming

정규 표현식

클톡(CloudTalk) 2017. 5. 31. 11:16
 
정규식 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+leaple’, ‘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