RegExp 문서 원본 보기
←
RegExp
둘러보기로 가기
검색하러 가기
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다.
문서의 원본을 보거나 복사할 수 있습니다.
RegExp (정규표현식)을 정리 합니다. ==RegExp 개요== *정규표현식(Regular Expression, RegExp) :*특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 *정규표현식 스타일 :*POSIX (Portable Operating System Interface) : Unix 기반 정규표현식 :*PCRE (Perl Compatible Regular Expression) : Perl 호환 정규표현식 [[파일:RegExp Process.png|500px]] *정규표현식 테스트용 웹사이트 :*http://www.regexper.com/ :*http://www.regexpal.com/ :*http://regex101.com/ :*http://regexpal.com/ *정규표현식 Cheatsheets [[파일:RegExp Cheatsheets.png|700px]] ==정규표현식 사용== ===JavaScript=== *RegExp 변수 생성 :*i flag : Ignore case, 대소문자 구별을 하지 않음 :*g flag : Global, 문자열 내의 모든 패턴을 검색 :*m flag : Multi line, 줄이 바뀌어도 검색 :*역참조 : $1, $2, $3, … 사용 var regExp = null; regExp = new RegExp('정규표현식', flag); //--- RegExp 객체로 생성 regExp = /정규표현식/flag; //--- 객체 초기화 방식으로 생성 regExp.test('문자열'); //--- true. 문자열에서 regExp 패턴이 탐지됨 '문자열'.match(regExp); //--- null. 탐지 안됨, 탐지된 문자열의 배열 regExp.exec('문자열'); //--- '문자열'.match(regExp)와 유사한 결과 '문자열'.search(regExp); //--- -1. 탐지 안됨, n. 탐지된 위치 (0, 1, 2, …) '문자열'.replace(regExp, '~'); //--- 탐지한 값을 '~'로 치환 *replace(regExp, xxx) :*xxx 부분에 $1, $2 등을 사용할 수 있음 :*xxx 부분에 함수를 사용할 수 있음 '문자열'.replace(regExp, function(str) { return str + '!'; }); *RegExp 사용 사례 /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/ //--- 한글 포함 여부 탐지 /\d{3}-?\d{3}/ //--- 우편번호 /\(?(\d{2,3})\)?[ -.](\d{3,4})[ -.](\d{4})/ //--- 전화번호 /[-\w.]+@([ A-z0-9][ -A-z0-9]+\.)+[ A-z]{2,4}/ //--- 이메일 주소 /(\d[4])[-/\ .] ([01]?\d)[-\/ .] ([ 0123]?\d)/ //--- 날짜 /((\bhttps?:\/\/) | (\bwww\.))\S*/ //--- 웹 주소 /^((https?:\/\/) | (www\.))\S*$/ //--- 웹 주소 상세 ===Java=== *RegExp 변수 생성 :*Pattern.COMMENTS flag : 공백 무시, #뒤에 주석 사용 :*Pattern.CASE_INSENSITIVE flag : 대소문자 구별을 하지 않음 :*Pattern.UNICODE_CASE flag : 유니코드 캐릭처 속성에 종속 (\w, \b, \s 등) :*Pattern.DOTALL flag : 마침표는 개행 문자와 일치 (. 사용시 줄 바뀜 허용) :*Pattern.MULTILINE flag : 줄이 바뀌어도 검색 import java.util.regex.*; Pattern regExp = null; Matcher matcher = null; try { regExp = Pattern.compile("정규표현식", flag); //--- flag는 |로 연결 matcher = regExp.matcher("문자열"); //--- matcher.reset("새 문자열"); while (matcher.find()) { matcher.group(); //--- 일치하는 문자열 반환 } } catch (PatternSyntaxException ex) { //--- 정규식 문법 오류 } catch (IllegalArgumentException ex) { //--- 치환 텍스트 문법 오류 } catch (IndexOutOfBoundsException ex) { //--- 존재하지 않는 캡처 그룹 참조 } *Matcher 함수 [[파일:RegExp Java Matcher.png|700px]] ===Python=== *RegExp 변수 생성 :*역참조 : \1, \2, \3, … 사용 import re #-*- coding:UTF-8 -*- matchObject = re.match(r'정규표현식', '문자열', flag = 0); //--- 패턴이 전체 문자열과 일치 matchObject = re.search(r'정규표현식', '문자열', flag = 0); //--- 일치하는 첫번째 검색 list = re.findall(r'정규표현식', '문자열', flag = 0); //--- 일치하는 것의 list 반환 #--- [ ($1, $2, $3), ($1, $2, $3) ] list = re.split(r'정규표현식', '문자열', maxsplit = 0, flag = 0); //--- 패턴으로 문자열 분리 resultString = re.sub(r'정규표현식', r'교체_문자열', '문자열', count = 0, flag = 0); //--- 치환 #--- count : 0. 전체 매핑 문자열 치환, n. 해당 개수만큼 치환 def repl(m): return m.group(1) + m.group(3) re.sub(r'정규표현식', repl, '문자열'); //--- 함수를 사용하여 치환 regExp = re.compile(r'정규표현식', flag = 0); //--- 정규표현식 재사용 m = regExp.search('문자열', flag = 0); *Match Object [[파일:RegExp Python Match Object.png|700px]] *RegExp용 flag (|로 연결) :*re.VERBOSE, re.X : 공백 무시 , #뒤에 주석 사용 :*re.IGNORECASE, re.I : 대소문자 구별을 하지 않음 :*re.UNICODE, re.U : 유니코드 캐릭처 속성에 종속 (\w, \b, \s 등) :*re.LOCALE, re.L : 현재 로케일에 정속적인 처리 (\w, \b, \s 등) :*re.DOTALL, re.S : 마침표는 개행 문자와 일치 (. 사용시 줄 바뀜 허용) :*re.MULTILINE, re.M : 줄이 바뀌어도 검색 :*re.DEBUG : 디버깅 정보 표시 *Raw string literal :*문자열에서 특수 문자를 표현하기 위해서 사용하는 escape sequence를 사용하지 않을 수 있도록 해주는 표현 방식 //--- 기존 방식으로 문자열 표현 str = 'Hello\nworld!\n' //--- Raw string literal 방식으로 문자열 표현 str = r'Hello world! ' *Unicode literal : u'유니코드_문자열" re.match(ur'정규표현식', u'문자열", re.UNICODE) ==참고 문헌== *[http://www.regular-expressions.info/reference.html/ Regular Expression Basic Syntax Reference] *[http://www.slideshare.net/kjhh1203/regular-expressions-kimjh 정규표현식, 2014.03] *[http://opentutorials.org/module/532/6580 정규표현식, 2014.04] *[http://www.nextree.co.kr/p4327/ 정규표현식(Regular Expression)을 소개합니다., 2014.01] *http://sweeper.egloos.com/3065126 :*http://sweeper.egloos.com/3059035 *http://misterleeee.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%A0%95%EA%B7%9C%EC%8B%9D [[Category:Search]] [[Category:JavaScript]] [[Category:Java]] [[Category:프로그램 언어]]
RegExp
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
더 보기
검색
주요 메뉴
오픈소스 컨설팅
오픈소스
오픈소스 라이선스
오픈소스 커뮤니티
오픈소스 종류
오픈소스 현황
오픈소스 한글화
문자셋과 인코딩
Storage
Network
보안
고가용성
모니터링
오픈 API
오픈 서비스
Cloud
BigData
Android
산사랑 노트
둘러보기
인기 문서
최근 수정 문서
모든 문서
모든 분류
임의 문서
위키 사용법
자매 사이트
CMS
오비컨 홈페이지
오비컨 CMS
블로그
데모 - SuiteCRM
산사랑의 Twitter
산사랑의 Facebook
친구 사이트
공개SW 포털
OLIS
한국공개소프트웨어협회
AppCenter 지원본부
OLC
PSEG
개발자 블로그
블로터
개인 메뉴
메뉴 수정
양식함
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보