정규표현식 정리
웹 개발을 하다보니 특정 내용만을 추출하거나 변경해야 할 경우들이 종종 생겼다.
공부해도 뭔소린지 이해 안갔다가, 손에 잡히는 정규 표현식이란 책을 읽은 후 이해했다.
http://www.yes24.com/Product/Goods/3475120?scode=029
손에 잡히는 정규 표현식
얇지만 강력하고, 정규 표현식의 개념부터 응용까지 아우른 책루비, 파이썬 같은 언어를 점점 더 많이 쓰면서 `정규 표현식(Regular Expressions)`의 강력함도 더 알려지고 있지만, 많은 프로그래머들이 정규 표현식을 어려워한다. 문법을 어떻게 조합해 써야 할지 모르기 때문이다. 이 책은 간략한 설명으로 정규 표현 문법의 개념을 명쾌하게 설...
www.yes24.com
배우게 된 내용 정리해보며 복습해보자.
1. 일단 정규 표현식이 뭔지부터 보자.
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 언어다. / 텍스트를 찾고 조작하는데 쓰는 문자열이다.
https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
정규 표현식 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 노랑색 강조 부분은 다음 정규식을 사용했을 때 매치된 것이다. 정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp[1] 또는 regex, rational expression)[2][3] 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며, 특히
ko.wikipedia.org
2. 정규표현식은 어디에 쓰는건데?
사이트 내에 a href 내용만 추출하고 싶을때, 사이트의 특정 정보를 크롤링 하고싶을때, 입력한 형태가 올바른 형태인지 (핸드폰번호, 이메일 등), ID 대소문자 구분 안하고 비교 등 특정 문자열을 찾거나 바꿀때 쓴다.
3. 시작하기전 알아두면 좋은 사이트. https://regexr.com/
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com
정규표현식을 잘 썼는지 바로바로 테스트해볼 수 있다.
4. 정규표현식 예
1) 문자 그대로 찾기 : 찾기 원하는 문자 그대로 쓰면 됌
2) 대소문자 다루기 : 뒤에 /i 붙여주면 대소문자 구분안함. 안붙이면 대소문자 구분
3) 모든 문자 찾기 : . 쓰면 한글자에대해서 모든문자로 찾는거로 처리됨. => 그럼 실제 문자열중에 . (마침표)를 찾고싶다면? \ (역슬래시)붙이기. \.
4) 여러 문자중 하나와 일치. [ ] 안에 일치하기 원하는 문자 나열
5) 제외하고 찾기 [^문자] 하면 해당 문자 제외하고 찾음.
6) \d : 숫자 하나 [0-9]와 동일 , \D 숫자 제외한 문자 하나와 동일 [^0-9]
7) \w : 대소문자와 밑줄 포함하는 모든 영숫자와 같다. [a-zA-Z0-9_] \W : 영숫자나, 밑줄이 아닌 모든 문자 [^a-zA-Z0-9_]
8) \s 모든 공백문자와 같다. \S 공백문자가 아닌 모든 문자와 같다.
9) 문자 하나 이상 찾기 + [0-9]+ 이면 한자리 이상 연속된 숫자
10) 문자가 없는 경우나 하나 이상 연속하는 문자 찾기. *
11) 문자가 없거나 하나인 문자 찾기 ?
12) 정확한 구간 제시 { 숫자 }
13) 범위 구간 {최수갯수, 최대갯자}
14) 탐욕적 수량자 , 게으른 수량자 * + { } 이런거 뒤에 ? 붙이면 게으름. 안붙이면(기본) 탐욕