-
- 대괄호[] : [] 는 안에 있는 문자중 하나를 의미. ex) [abcd] : a, b, c, d 중 하나, [a-zA-Z]알파뱃 소문자나 대문자 중 하나
- \d : 숫자를 대표하는 정규표현식. d 는 digital 을 의미
- \w : 글자를 대표하는 정규표현식. 문자, 숫자 포함. 특수문자는 포함하지 않음(단, _(언더바)는 글자로 포함됨)
- + : 하나 혹은 그 이상 연결됨을 뜻 함. ex) \d+ : 하나 혹은 그 이상 연결된 숫자를 의미
- * : 0개 이상 : ex) \d* : 숫자가 0개 이상을 의미. [1-9]\d* : 1~9 까지의 자연수 표현
- {숫자} : 숫자번 반복 함을 뜻 함. ex) \d{2} : 숫자가 연속 두 번 나옴
- {숫자1, 숫자2} : 숫자1 부터 숫자2 까지 반복함을 뜻 함. ex) \w{2, 3} : 문자가 2 ~ 3번 나옴
- ? : 있을수도 없을수도 있음을 뜻 함. ex) -? : - 가 있거나 없다를 뜻 함.
- ex) \d+-?\d+-?\d+ : 공백 없이 - 로 연결된 전화번호를 찾음. 불완전한 표현식
- ex) \d+[- ]?\d+[- ]?\d+ : 공백있는 전화번호까지 찾음. 불완전한 표현식
- ex) \d{2,3}[- ]?\d{3,4}[- ]?\d{4} : 전화번호 형식까지 맞춰진 것만 찾음. 제대로 된 표현식
- \s : 공백 문자(스페이스, 탭, 뉴라인)
- \S : 공백 문자를 제외한 문자
- \D : 숫자를 제외한 문자
- \W : 글자를 제외한 글자들(특수문자, 공백 등)
- 영어 소문자 찾기 : [a-z]
- 영어 소문자 단어찾기 : [a-z]+
- 한글 단어 찾기 : [가-힣]+
자바에서 정규표현식 다루기 : Pattern 클래스와 Matcher 클래스를 이용함
\ 대신 \\ 를 적어야 함(자바에서는 escape 를 역슬래시로 하기때문에 \\를 두 번 써야함).
Pattern pattern = Pattern.compile("\\d"); Matcher matcher = pattern.matcher(searchTarget); while(matcher.find()){ System.out.println(matcher.group(0)); }
C# 도 마찬가지로 역슬래시를 두 번 써야함. C# 은 Regex.matches 라는 메소드 사용.
string regex = "\\d" foreach (Match m in Regex.Matches(searchTarget, regex)){ Console.WriteLine(m.Value); }
자바스크립트 정규표현식 : g는 global의 약자로, 정규표현식과 일치하는 모든 내용을 찾아오라는 옵션
var regex = /\d/g; console.log(searchTarget.match(regex));