2014-07-22 1 views
0

을 나는이 입력 문자열 (containg 바꿈)가 (.) :문자열에서 모든 줄 바꿈을 제거하지만, 점 후 ONE 줄 바꿈을 유지

That is 
a test. 
seems to work pretty good? working. Another test again. 

을 그리고이 상태에 도달 할 :

That is a test. 
seems to work pretty good? working. Another test again. 

하나를 아이디어?

replaceAll("[^\\.]\\n", ""); 
+0

을 줄 것이다 당신. 너의 편에서의 어떤 시도도 제외하고? –

+0

지금까지 어떤 코드가 있습니까? 기대하지 않는 것은 무엇입니까? –

+0

replaceAll ("^ \\ s + | \\ s + $ | \\ s * (\ n) \\ s * | (\\ s) \\ s *", "$ 1 $ 2"); – AHmad

답변

0

당신은 lookbehind을 사용할 수 있습니다 (documentation 참조) i '를

이 노력하고있어. 실제로 문자를 바꾸지 않고 도트가 아닌 문자가 있는지 확인하여 마지막 단어의 일부를 삭제합니다. 또한 단어가 결합되지 않도록 개행 문자를 공백으로 대체해야합니다.

text.replaceAll("(?<=[^\\.])\\n", " ") 

또는 당신이 그룹에 비 점 문자를 캡처하고 교체에 다시 삽입 할 수 있습니다 정규식 도움이 될

text.replaceAll("([^\\.])\\n", "$1 ") 

이 모두 당신에게

That is a test. 
seems to work pretty good? working. Another test again. 
관련 문제