티스토리 뷰

* 개요

정규표현식으로 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

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함