2016-10-19 5 views
1

자바 문자열에서 패턴을 찾아 다른 문자열로 대체해야합니다.정규식 패턴 바꾸기

나는 문자열

1 LOREM의 Ipsum 제품의 슬픔 두 종류를 가지고는, AMET을 앉아있다. 정수 pos laciniA. 2. Lorem ipsum dolorelit. Curabitur pretium maL.

내가해야 할 일은 "." 그 앞에 숫자가없고 ";"로 바꿉니다.

str.replaceAll ('\.', '\\;');과 같이 정규식을 찾았습니다.

이 패턴의 문제점은 문자열 "2" "2"로 바뀝니다.

또 다른 해결책은 str.replaceAll ('[a-zAz] \.', '\\;'); 그러나 "."앞에 마지막 문자를 대체합니다.

누군가가 도와 드릴 수 있습니까?

+0

는 당신이 필요로하는 의미합니까 일치 (https : //로 regex101 ['str.replaceAll'(, "" "?! (<\\ d)에 \\.")] .com/r/xbyV8m/1)? –

답변

1

내가해야 할 일은 "." 그 앞에 숫자가없고 ";"로 바꿉니다.

당신은 부정적인 lookbehind 활용할 수

String result = str.replaceAll("(?<!\\d)\\.", ";"); 

regex demo

세부 참조 :

  • (?<!\d) - 현재 전에 자리가있을 경우 경기를 실패 위치 :
  • \.은 - 문자 그대로 .