'.'을 바꾸려고합니다. 2 개의 숫자가 아닌 기호 사이. replaceAll과 regEx를 사용했습니다.정규 표현식 부분 바꾸기
string.replaceAll("\\D\\.\\D", "_");
하지만 ' Java 메소드로이 문제를 해결할 수 있습니까? 아니면 자체 메소드를 작성해야합니까? 이 같은
'.'을 바꾸려고합니다. 2 개의 숫자가 아닌 기호 사이. replaceAll과 regEx를 사용했습니다.정규 표현식 부분 바꾸기
string.replaceAll("\\D\\.\\D", "_");
하지만 ' Java 메소드로이 문제를 해결할 수 있습니까? 아니면 자체 메소드를 작성해야합니까? 이 같은
이 당신을 위해 작동 할 수 있습니다
yourString.replaceAll("(\\D)[.](\\D)","$1$2");
사용 정규식 : (?<=\D)(\.)(?=\D)
문제는 다음과 같습니다의 \ D 부분도 선택됩니다.
예 :
System.out.println("1.1".replaceAll("(?<=\\D)(\\.)(?=\\D)", "")); // output : 1.1
System.out.println("a.b".replaceAll("(?<=\\D)(\\.)(?=\\D)", "")); // output : ab
현재 패턴 AB.CD
에서, 이것은, A.D
을 반환은 일치하고 단지 한 문자 어느 측 .
의합니다 (B
및 C
)
이 대체 한 내 생각에 당신이하려고하는 것 :
string.replaceAll("[^0-9]+\\.[^0-9]+", ".");
나는 삼촌이다. 귀하가 성취하고자하는 바를 귀하의 설명에서 찾아보십시오.
아니요. 번호를 바꾸기를 원하지 않습니다. 그는 단지 도트가 교체되기를 원합니다. – TheLostMind
그런 경우, 나는'replaceAll'이 올바른 도구인지 확신하지 못합니다. 캡처 된 그룹과도 작동합니까? – Stewart
당신은 정규식에 (비) 캡처 그룹과 내다/lookbehind을 읽고 싶어 아마 것이다. – gpgekko
무엇을 대체하려고합니까? 현재'AB.CD' 패턴에서,'.D'를 반환 할 것이고, '.'의 양쪽에 일치하는 1 문자가 있습니다. – Stewart
''. "'을''."'로 대체하십시오. 내 대답에''. "'을''''로 대체하고 싶다고 가정하고 있습니다. – TheLostMind