0
하여 텍스트를 절단이 같은 샘플 데이터를 가지고 :정규 표현식
1) 태그 (-200, 7 번호를 가져, 등) 2 : 내가 원하는 무엇
<o:-200> Text1
<o:7> Text2
<o:218> Text3
<o:325> Text4
번호 변경)이 번호에 값을 추가합니다 (예 : + 100) 3) 전체 태그로 대체
출력 :
-100 Text1
107 Text2
318 Text3
425 Text4
내 코드의 그 :
String s;
Pattern p1 = Pattern.compile("<o:(-?[0-9]+)>");
Matcher m = p1.matcher("<o:-200> ABC\n<o:7> ASDQWE\n<o:218> 12345.67\n<o:325> ASDFGD asdfsdf\n");
StringBuffer s1 = new StringBuffer();
while (m.find()){
m.appendReplacement(s1, String.valueOf(100 + Integer.parseInt(m.group(1))));
}
s = s1.toString().replaceAll("<o:\\b(\\d+)\\b>", "$1");
System.out.println(s);
하지만 내 출력은 다음과 같습니다
-100 Text1
107 Text2
318 Text3
425
하지만 전체 텍스트를합니다. ReplaceAll이 작동하지 않습니다 (첫 번째 값을 찾은 모든 태그 변경).
어떻게하면됩니까?
글쎄, 그게 다야! 고맙습니다! –
패턴을''( : (-? [0-9] +)>)''로 변경하고 m.group (2)에서 parseInt를 호출하면 replaceAll()에 대한 호출을 생략 할 수 있습니다. –