정규 표현식은 코딩테스트에서 문자열 데이터를 전처리할 때 강력한 퍼포먼스를 발휘한다고 생각한다.
한꺼번에 정리하기에 너무 헤비급이라....여기에 천천히 추가하겠다!
p.s
.....생각보다 양이 너무 많아....
메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다.
문자 클래스 [ ]
- 기본적으로, 문자 클래스로 만들어진 정규식은
[ ] 안의 문자들과 매치
라는 의미를 갖는다.- [ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위(From - To)를 의미한다.
- 문자 클래스[ ] 안에서 사용되는
^
은 not의 의미를 지닌다.
(메타문자의^
와 다른 의미를 가지니 주의하자)- 문자클래스 안에서 사용되는 축약 표현이 있으니 기억해두자.
paragraph = "Bob hit a ball, the hit Ball flew far after it was hit." result1 = re.sub('[abcABC]', ' ', paragraph) result2 = re.sub('[a-zA-Z]', ' ', paragraph) result3 = re.sub('[^\w]', ' ', paragraph) print(result1) print(result2) print(result3) >> o hit ll, the hit ll flew f r fter it w s hit. , . Bob hit a ball the hit Ball flew far after it was hit
re.sub(pattern, repl, string, count, flags)
- 정규식과 매치되는 부분을 다른 문자로 쉽게 바꿀 수 있다.
- 파이썬 문자열은 기본적으로 replace 메서드를 갖고 있기 때문에 일반적인 문자열은 그냥 치환이 가능하다. (replace는 정규식 패턴에 대응하는 문자열을 찾아주지는 못한다.)
pattern
: 정규 표현식
repl
: 정규 표현식에 해당하는 부분을 치환할 내용
string
: 대상 문자열
count
: 최대 몆 개까지 치환할 것인지
flags
: 모르겠음....알려주메