문자열의 비교나 처리를 위해 사용하는 특수기호 표현식
re.compile(검색할 문자열) | 정규표현식 혹은 찾는 문자들을 정규식 객체[re.RegexObject 클래스 객체]로 반환하는데 사용하는 함수 |
match( ) | 문자열의 시작 부분이 정규식과 매치되는지 조사 즉, 문자열 중간에 정규식과 일치하는 패턴이 있더라도 출력되지 않음 |
search( ) | 문자열의 시작 부분부터 정규식과 매치되는지 조사 단, 정규식과 매칭되는 패턴이 나타나면 더 이상 검사하지 않음 |
findall( ) | 문자열의 시작 부분부터 정규식과 매치되는지 조사 정규식과 매치되는 문자열들을 리스트로 반환 |
finditer( ) | 정규식과 매치되는 문자열들을 반복 가능한 객체로 반환 |
start( ) | 매치된 문자열의 시작 위치를 리턴 |
end( ) | 매치된 문자열의 끝 위치를 리턴 |
span( ) | 매치된 문자열의 (시작위치, 끝 위치)를 리턴 튜플 형태로 리턴됨! |
group( ) | 매치된 문자열을 리턴 |
다른 문자의 정보를 전달하기 위하여 프로그램이나 데이터에 끼워 넣는 문자
^로 정규표현식을 시작해서 $로 끝나도록 한다.
[ ]안에 들어있는 문자와 매칭되는 모든 문자를 출력하는 것으로 문자클래스라고 함
연속된 문자나 숫자의 경우 '-'를 사용하면 간단하게 표기 가능
정규표현식 | 설 명 |
[abcd], [a-d] | 문자열에서 지정한 문자들에 해당하는 것들을 하나씩 추출하여 리스트를 생성 |
[^ABCD], [A-D] | 문자열에서 지정한 문자들이 아닌 것들을 하나씩 추출하여 리스트를 생성 |
[A-Z] | 문자열에서 A~Z 에 해당하는 것들을 하나씩 추출하여 리스트를 생성 |
[a-z] | 문자열에서 a-z 에 해당하는 것들을 하나씩 추출하여 리스트를 생성 |
[가~힣] | 문자열에서 가~힣 사이, 즉 한글에 해당하는 것들을 하나씩 추출하여 리스트를 생성 |
[0~9] | 문자열에서 0~9사이에 해당하는 것들을 하나씩 추출하여 리스트를 생성 |
자주 사용하는 문자클래스는 별도 표기법을 통해 간편하게 사용 가능!
별도 표기법 | 정규 표현식 | 설 명 |
\d | [0-9] | 문자열에서 0~9사이에 해당하는 것들을 하나씩 추출하여 리스트를 생성 |
\D | [^0-9] | 문자열에서 0~9사이에 해당하지 않는 것들을 하나씩 추출하여 리스트를 생성 |
\s | [\t\n\r\f\v] | 문자열에서 공백문자[whitespace]를 하나씩 추출하여 리스트를 생성 |
\S | [^\t\n\r\f\v] | 문자열에서 공백문자[whitespace]가 아닌 것들을 하나씩 추출하여 리스트 생성 |
\w | [a-zA-Z가-힣0-9] | 문자열에서 문자나 숫자들을 하나씩 추출하여 리스트 생성 |
\W | [^a-zA-Z가-힣0-9] | 문자열에서 문자와 숫자가 아닌 것들을 하나씩 추출하여 리스트 생성 |
줄바꿈 문자인 \n을 제외한 모든 문자 중 하나와 매칭
문자열에서 바로 앞의 패턴[지정 문자나 메타문자]이 0번 이상 반복되는 것들을 하나씩 추출하여 리스트 생성
앞의 메타문자에 속하는 글자라면 길이와 상관없이 계속 출력됨!
바로 앞의 메티문자에 속하는 글자가 없다면 공백 혹은 출력되지 않음
문자열에서 바로 앞의 패턴[지정 문자나 메타문자]이 0~1번 반복되는 것들을 하나씩 추출하여 리스트 생성
문자열에서 바로 앞의 패턴[지정 문자나 메타문자]이 1번 이상 반복되는 것들을 하나씩 추출하여 리스트 생성
문자열에서 바로 앞이나 뒤의 패턴[지정 문자나 메타문자]들을 하나씩 추출하여 리스트 생성
( | )나 [ , ]가 동일하기 때문에 개인적으로는 거의 사용안함
문자열에서 { }안의 숫자만큼 반복되는 것들을 찾아서 리스트를 생성
패턴{a} | 문자열에서 패턴이 a번 반복되는 것들을 추출하여 리스트를 생성 |
패턴{a,b} | 문자열에서 패턴이 a번 이상 b번 이하 반복되는 것들을 추출하여 리스트를 생성 |
문자열에서 해당 단어를 찾아서 리스트를 생성[단어에 포함되어 있는 패턴은 추출하지 않음]
해당 단어가 어느정도 사용되었는지 확인할 때 유용
문자열에서 해당 패턴을 찾아서 리스트를 생성[단어는 추출하지 않음!]
댓글 영역