2011-03-21 4 views
0

줄 시작 부분에 문자가없고 "WORD"가 발생할 때마다 나눌 텍스트가 있습니다. text.split ("WORD")를 사용했습니다. 예를 들어 % hi 안녕하세요. WORD가 split 메소드와 일치해서는 안되며 지금은 일치합니다. "^ WORD"를 사용하려고했지만 전체 텍스트의 시작 부분에있는 단어 만 일치시킵니다.줄 시작 부분에 문자열 나누기

어떻게하면 좋을까요? 그

+1

샘플 입력 텍스트를 게시 할 수 있습니까? –

+0

말은, 한 줄에 WORD가 모두 표시되면 WORD_를 나눠 쓰고 싶다는 것입니다. 즉, 시작 부분에 있기 때문에 문자가 없으며 줄에 문자가 없기 때문에 문자가 없습니다. 또는 파일 끝 부분의 자체 줄에서 문자를 제외하고 WORD로 분할하십시오 (문자 그대로 문자가 없음)? 또는 다른 것을 나누고 싶습니까? 나는 혼란스러워. –

+0

당신이 말했듯이 그 자체가 줄에 때 – yot

답변

5

을 사용하여 중요한 경우 은 BTW 내가 자바를 사용하는 (정규식 패턴에 대한 Pattern.MULTILINE 플래그와 같은 효과가있다) multiline modifier : 시작 부분에

text.split("(?m)^WORD"); 

그것은 에서 ^의 의미를 변경을 " 줄의 시작 부분에 " to "의 문자열 ""이 있습니다.

+0

아, 훨씬 나아! –

+0

안녕하세요. 그것은 나를 위해 작동하지 않습니다. 나는 아직도 sdfsdWORD와 일치한다. 예를 들면 – yot

+0

@yot : 나를 위해 일한다 ... http://www.ideone.com/VUCxH – Tomalak

0

Tomalak이 게시 할 때 multiline 수정자를 사용하십시오. WORD 자체를 유지하려는 경우 다음을 수행 할 수도 있습니다.

Pattern p = Pattern.compile("(^WORD .*$)", Pattern.MULTILINE); 
String input = "WORD something. And WORD not at beginning.\nWORD something."; 
Matcher m = p.matcher(input); 
while (m.find()) { 
    System.out.println(m.group()); 
} 
0

줄의 시작 부분에 "WORD"가 나오고 뒤 따르는 문자가 없습니다.

text.split("(?mis)^WORD(?!.)");

+0

왜'i'와's'입니까? 그게 맞는 것인지 알 수 없습니다. – Tomalak

+0

@Tomalak yot은 WORD가 항상 대문자이면 정확하지 않았습니다. 나는 모든 문자와 일치하는 점을 원했다. – Stephan

+0

's' 수식자를 사용하면'(?!.)'는이 점 다음에 문자가없는 것을 의미하며 개행을 의미하지는 않습니다. 다시 말해 문자열의 끝 부분과 정확히 일치하며 '\ z'와 똑같습니다. –

관련 문제