-
[JAVA] 정규표현식JAVA 2018. 12. 12. 17:26
표현식
설명
^
문자열의 시작
$
문자열의 종료
.
임의의 한 문자 (문자의 종류 가리지 않음)
*
앞 문자가 없을수도 무한정 많을 수도 있음
+
앞 문자가 하나 이상
?
앞 문자가 없거나 하나 있음
[ ]
문자의 집합이나 범위를 나타내며
두 문자 사이는 - 기호로 나타낸다.
[^문자] : 해당 문자가 아닌 모든 문자 ( NOT 의미)
{ 숫자 }
횟수 또는 범위를 나타냄
( )
하나의 문자로 인식
|
OR연산 \s
공백문자 \S
공백문자가 아닌 나머지 문자
\w
영문이나 숫자
\W
영문이나 숫자 제외한 나머지 문자 \d
숫자 [0-9] 와 동일
\D
숫자를 제외한 모든 문자
\
역슬래시(\)는 확장문자
역슬래시 다음에 일반 문자가 오면 특수문자로 취급역슬래시 다음에 특수 문자가 오면 그 문자 자체로 취급
(?i)
앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음
FLAG(플래그)
설명
g
전역검색
i
대소문자 구별없이 검색
m
Multi-line검색, 시작 혹은 끝 문자탐색(^and$)아 다중행에 적용되도록 합니다.
y
현재 위치에서 검색
※ JAVA에서는 \(역슬래시)를 사용하기 위해서는 \(역슬래시)를 한번 더 적어주어야 한다.
import java.io.Console;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class MyRegex{
public static void main(String[] args){
String searchTarget = "<p style='text-align: center;'><span>웹프로그래밍</span></p><p><span>웹프로그래밍</span></p><p ><span>웹프로그래밍</span></p><p <><span>웹프로그래밍</span></p><p >><span>웹프로그래밍</span></p><P><span>웹프로그래밍</span></P>";
Pattern TAGS = Pattern.compile("<\\w+\\s+[^<]*\\s*>");
Matcher matcher = pattern.matcher(searchTarget);
while(matcher.find()){
System.out.println(matcher.group(0));
}
}
}
Pattern.compile("<\\w+\\s+[^<]*\\s*>");
\w
+
\s
+
[^<]
*
\s
*
영문
or
숫자
하나이상
공백문자
하나이상
< 문자 아닌 모든 문자
가능
없거나
있거나
공백문자
없거나
있거나
필수
선택
<p> <span>
공백문자가 하나이상 없기 때문에
</p> </span>
영문또는숫자로 시작해야하고 공백문자가 하나이상 없기 때문에
<p <>
<문자가 아닌 모든문자만 허용하기 때문에
'JAVA' 카테고리의 다른 글
[JAVA] JSTL 문법정리 (0) 2018.12.13 [이클립스] DEBUG 사용 (0) 2018.12.12