자바 정규식 만들기...
글쓴이: 다크슈테펜 / 작성시간: 화, 2005/01/25 - 12:02오후
스트링의 내용을 스트링 세개로 검색할려고 하는데 그게 잘안돼네요
예를 들면 첫번째 스트링 re 두번째 스트링 re1 세번째 스트링 re2이라고 하면
제 생각에는 "re\\.+re1\\.+re2"하면 될줄 알았는데 그렇게 검색이 안돼네요...어떻게 만들어야 하죠 아니면 다른 방법이 있나요...? re1과 re,re2사이에는 어떤 문자가 들어갈수도 있습니다(개행문자,공백문자 포함)
그냥 배열에 집어넣어서 한글자 마다 검색해볼려고 했는데 그것보다 더 낳은 방법을 알고 싶습니다.
Forums:
[code:1]"re\\.+re1\\.+re2"[/co
"re\\.+re1\\.+re2"
\\를 빼세요.
\\. 은 . 그자체와 매치합니다.
따라서 님이 올린 패턴은
re.....re1....re2 이런식의 문자열에만 매치하게 됩니다.
그리고 re, re1, re2 사이에 반드시 문자가 있어야 하는 경우가 아니면
+ 대신에 *를 쓰세요.
검색은 잘돼는데 마지막에 re2는 첫번째나오는 것까지만 하고 싶거든요..
검색은 잘돼는데 마지막에 re2는 첫번째나오는 것까지만 하고 싶거든요..
"re.*re1.*re2"를 하게 되면 맨 마지막의 re2까지 나오네요 이런거는 어떻게 하나요...?
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
[quote="darkschutepen"]검색은 잘돼는데 마지막에 re2
(re.*re1.*)re2
이런식으로 가로로 감싼다음에 Matcher 오브젝트에서 group(int)메소드를 쓰세요.
[quote="ddt"][quote="darkschutepen"]검색은
저 자세한 설명 부탁드려도 될까요...?
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
[quote="darkschutepen"][quote="ddt"][quo
정규식에서 가로로 감싸면 결과(Matcher object)에서 group()메소를 통해서 가로로 감싼 부분만 가져올 수 있습니다.
위와 같은 코드에서는 matcher.group(1)하면 re2나오기 전까지의 결과를 받을 거에요.
자세한 것은 API문서를 보세요.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
앗 설명을 잘못했네요.답변 주신분께 죄송합니다.제가 원하는 거는...
앗 설명을 잘못했네요.답변 주신분께 죄송합니다.
제가 원하는 거는...
"re.*re1.*re2"로 검색하면 이렇게 나옵니다.
제가 원하는 결과는 이렇거든요..
이렇게 하는 것도 가능한가요...?
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
[code:1]re.*re1.*?re2[/code:1]이렇게 한번 해
re.*re1.*?re2
이렇게 한번 해보세요. 최소매치 모드로 동작할 겁니다.[code:1]re그래서 저래서 이래서 그래서re1그래서 저래
re.*re1.*?re2로 실행 시키니까 결과가 이렇게 되네요...ㅠ0ㅠ;;
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
댓글 달기