티스토리 뷰
* 개요
정규표현식으로 A & B 표현하는 방법
ex)
나는 바보입니다
나는 천재입니다
걔는 천재입니다
문장 있을때
나는&바보 를 검색 하고 싶다면...
* 방법 1 - 단순하게 생각하면...
나.*바보|바보.*나
하면 될 것 같지만..
이 방법은 단어 3개 이상 되면 모든 경우의 수 만들어주기가 복잡함
* 그래서 Lookahead 이용하여 표현
- Lookahead(전방탐색) 패턴
참고 : http://minsone.github.io/regex/regexp-lookaround
- 나&바보&입니다 3가지 동시에 찾기 위해
(?=.*나)(?=.*바보)(?=.*입니다)
표현하면 됨
- 나.*바보 는 '나' 를 찾고 나서 그 뒤이어 '.*바보' 를 찾음
전방탐색은 '.*나'를 찾고 이어서 '바보'를 찾는게 아니라,
별도로 처음부터 '.*바보' 를 찾음.
Pattern p = Pattern.compile("(?=.*나)(?=.*바보)(?=.*입니다)");
Matcher m = p.matcher(s);
System.out.println(m.find());
* 편집 참고
t-2-34
'SW개발 > Java' 카테고리의 다른 글
[종합] 자바 중급 - 초보를 넘어서려면 알아야 할 것들 (0) | 2018.11.04 |
---|---|
정규표현식 그룹 캡쳐 활용 - 패턴 일치부분 가져오기 (0) | 2018.08.20 |
이클립스 프로젝트 - Resource Location 폴더 변경 (0) | 2018.04.23 |
Java PriorityQueue 우선순위 큐 (1) | 2018.04.13 |
[종합] 자바 정규표현식 (0) | 2018.03.09 |