카테고리 없음

정규표현식 정리

hackee 2019. 7. 10. 15:38

 

 웹 개발을 하다보니  특정 내용만을 추출하거나 변경해야 할 경우들이 종종 생겼다.

공부해도 뭔소린지 이해 안갔다가,   손에 잡히는 정규 표현식이란 책을 읽은 후  이해했다.

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) 탐욕적 수량자 ,  게으른 수량자       * + { } 이런거 뒤에   ? 붙이면 게으름. 안붙이면(기본) 탐욕