- 정규표현식(Regular Expression)이란?
- 문자열에 해당 조합이 있는지 검색하는 식
- 자바, 오라클, C언어 등 여러 언어에서 동일하게 적용된다.
- 사용 방법
- 정규표현식 객체 생성
//자바스크립트의 경우, 둘 다 사용 가능 var regExp = new RegExp('test'); var regExp = /test/;
- 메타문자
정규표현식 의미 ^문자 '문자'로 시작 문자$ '문자'로 끝남 [문자] '문자'가 포함 {최소, 최대} 최소, 최대 몇 문자 . 1개 문자 자리 + 1개 이상의 문자 자리 * 0개 이상의 문자 자리 ? 0개나 1개 [^문자] '문자' 제외 \d 0~9 \D 숫자가 아닌 모든 문자 \w 영문자, 숫자, '_' \W 영문자, 숫자, '_'를 제외한 모든 문자 \s 공백문자(띄어쓰기, 탭, 줄바꿈 == [\b\t\n]) \S 공백문자를 제외한 모든 문자 - 플래그 문자
플래그 문자 의미 i 대소문자 모두 비교 g 문자열의 모든 패턴 비교 m 여러줄 비교 - 경우의 수 나누기
(0[1-9]|1[0-2])
- (경우1 | 경우2 | 경우 3 | ....)
- 정규표현식 객체 생성
- 정규표현식 예제
- C언어
- 입출력에서 %와 출력타입 사이에 넣어 입출력의 값을 제한할 수 있다.
#include <stdio.h> int main(){ char str[100]; scanf("%[^\n]s", str);//입력 : Hello World! printf("%s", str);//출력 : Hello World! }
- 정규식을 활용하기위해 헤더 <regex.h>, 메소드 regcomp, regexec, regerror, regfree가 있다고 하는데 현재 내 작업 환경에서 제대로 적용이 안됨. 추후에 확인해볼것.
- 입출력에서 %와 출력타입 사이에 넣어 입출력의 값을 제한할 수 있다.
- Java : API java.util.regex의 Pattern클래스와 Matcher클래스
String regExp = "^[\d]*$"; String str = "2342xx34"; boolean test = Pattern.matches(regExp, str);//false
- JavaScript : /와 / 사이에 들어간다.
- 정규식 메소드
메소드 의미 반환값 regExp.test(str) 문자열에 정규표현식에 일치하는 값의 존재 여부 true / false regExp.exec(str) 일치하는 값이 있으면 문자열 반환. 없으면 null String - 문자열 메소드 활용
메소드 의미 반환값 str.match(regExp) 일치하는 값 str.search(regExp) -1 -1 str.replace(regExp, '교체할문자열') str.split(regExp) 정규식을 구분자로하여 나누기 배열
- 정규식 메소드
- Oracle :REGEXP함수. 단 10g부터 지원.
- C언어
'COMPUTER-SCIENCE' 카테고리의 다른 글
[Server] Tomcat 오류 해결 방법 (0) | 2022.01.27 |
---|---|
[읽은 책] 그림으로 배우는 네트워크 구조 (0) | 2021.11.27 |
[프로그래밍] 기초와 언어 분류 (0) | 2021.11.18 |