regular expression
^ $ * + ? { } \ | ( ) 등의 특수 문자는[ ] 안에 작성한다.[0-9]: 숫자[a-zA-Z]: 알파벳 대소문자^: 문자 클래스 내부에서 쓰일 때는, 이 이하로 작성된 것들의 반대를 의미한다.[a-z^aeiou]: 알파벳 소문자 중 모음 제외[^AEIOUaeiou_\W\d]: A,E,I,O,U, a,e,i,o,u, 밑줄, 문자가 아닌 것, 숫자를 전체 부정한다. (자음)^만 해당되며,^과 반대로, 특정 문자로 끝나면 매치되도록 한다.\n(줄 바꿈)을 제외한 모든 문자와 매치한다.\\을 붙여줘야 한다.\을 사용해야 할 일이 있다면\를 나타낼 때, ‘\\’을 입력해야 한다.‘\메타 문자’가 전달될 수 있도록,’\\\메타 문자’로 해야 한다.\d, \s, \w는 상관 없으며, 그 외에 \b 등은 마찬가지로 해당된다.\d: 숫자\s: space나 tab 등, 공백을 의미하는 white space\w: 문자, 숫자, 밑줄\b: 단어의 경계를 의미한다. 즉, white space로 구분된 단어와 매치할 때 사용한다.\B는 그 반대이다.)‘\\bis\\b’ 이면 is와, ‘is\\B’이면 isn’t의 is와 매치된다.* 등을 *? 등으로, greedy한 것들을 제한하고자 할 때 사용한다.<.*>을 하면 전체 문자열로써 매치되고,<.*?>을 하면 각각 <html>, <head>로 나누어 매치된다.{n}: 정확히 n개{min,max}: 최소, 최대.( ) 를 사용한다.\1(1번째 그룹) 따위로 재참조 할 수 있다.?P<group_name>으로 지정할 수 있다.?P=group_name으로 참조할 수 있다.?: 을 붙이도록 한다.( )를 사용하지만, 그룹핑은 아니다.(?=~): 매치 여부로는 활용하지만, 추출(소비)하지는 않을 때 사용한다.‘http://www.google.com’의 ‘http:’에서, ‘:’을 제외하고 ‘http’만 추출할 때 등에 유용하다.‘.+(?=:)’ 등으로 할 수 있다.(?!~): 특별히 원하지 않는 문자열을 필터링 할 때 주로 사용한다.‘.*[.](?!bat$).*$’: 확장자가 bat이 아닌 경우에만 매치된다.re.compile(패턴, option)\n을 포함하여 모든 문자와 매치하도록 한다.\n에 상관없이 검색할 때 유용하다.^, $과 관련하여 쓰이곤 한다.패턴 객체.match(대상 문자열)패턴 객체.search(대상 문자열)패턴 객체.findall(대상 문자열)패턴 객체.finditer(대상 문자열)패턴 객체.sub(바꿀 문자열, 대상 문자열, n)\g<그룹 이름 혹은 인덱스>로 참조할 수 있다. p = re.compile('[^0-9a-z_.-]')
p.sub('', 대상 문자열) re.sub(pattern, 바꿀 문자열, 대상 문자열) 로 축약하여 사용할 수도 있다.match 객체.group(그룹 명 혹은 인덱스)findall()과 같이, match 객체를 return 하지 않는 경우에는group()을 사용할 수 없으나, 그룹핑된 부분만 추출한다.match 객체.start()match 객체.end()match 객체.span()