2012-05-05 4 views
2

정규식을 만드는 데 도움이 필요합니다.
첫 번째 키워드와 마지막 키워드 사이에 모든 단어를 가져와야합니다.Java Regex 특정 단어를 부정합니다.

첫 번째 키워드는 All이고 마지막 키워드는 At이라고 가정합니다.

샘플 입력 :

에서 모든 ABC ABCD abcccc의 abdd는 출력은 다음과 같아야합니다

ABC ABCD abccc이

을 abdd이 내 전류 정규식 :

,
(\\s*All (\\w|\\s)+(At)) 

내 문제는 지금까지 입력이 같은 경우 :

모든 ABC ABC ABC ABC ABC

에서 출력은시 :

ABC ABC abc abc abc에

답변

3

은 중간에 단어를 비 욕심 매칭을 시도해보십시오

(\s*All (\w|\s)+?(At)) 

참고 추가 ? 로그인합니다. 이것은 정규식 엔진에 (\w|\s)+ 부분에 대한 최단 매치를 반환해야하며, 원하는 결과를 얻을 수 있어야합니다.

+0

, 감사의 xD 무엇을 할 확실하지 않다 – nfinium

0

당신의 문자열을 단축하기 전 : 그러나

String toSearchFor = source.substring (source.indexOf ("All"), source.indexOf ("At")+"At".length); 

, 나는

그것은 작동
"At At All abc At All def All ghi At jkl At At All"