정규 표현식을 사용하여 특정 반복 문자를 바꿀 수있는 방법이 있습니까?알 수없는 패턴 크기를 문자로 바꾸기
예 :
STR = "앤 nnnn을했다 것"
용액이 될 것이다 :
가"ANE를 갖는 N 일"
문자열에 하나 이상의 ch 인스턴스가 두 개 이상있는 경우 서로 옆에있는 aracter를 사용하면 정규 표현식을 모두 하나로 바꿔야합니다.
정규 표현식을 사용하여 특정 반복 문자를 바꿀 수있는 방법이 있습니까?알 수없는 패턴 크기를 문자로 바꾸기
예 :
STR = "앤 nnnn을했다 것"
용액이 될 것이다 :
가"ANE를 갖는 N 일"
문자열에 하나 이상의 ch 인스턴스가 두 개 이상있는 경우 서로 옆에있는 aracter를 사용하면 정규 표현식을 모두 하나로 바꿔야합니다.
것이 가능하다 :
inputString.replaceAll("(.)\\1+", "$1")
일치 한 문자 만 캡처로 교체 한 번 이상을 반복을 캡처합니다.
그러나이 방법이 더 빠를 수는 없습니다.
이public String removeRepetitions(final String input)
{
if (input.isEmpty())
return input;
final int len = input.length();
final StringBuilder sb = new StringBuilder(length);
char current = input.charAt(0);
char c;
sb.append(current);
for (int i = 1; i < len; i++) {
c = input.charAt(i);
if (c != current) {
sb.append(c);
current = c;
}
}
return sb.toString();
}
이 2 회 이상 반복 N과 일치해야합니다 : 이러한 것은 또한 간단한 루프를 행할
/n{2,}/
저를 위해 저것은 일하지 않았다. 문자열 str = "A_Sommmmething"; \t str = str.replaceAll ("/ m {2,} /", "_"); 똑같은 것을 얻었다. – diazazar
주셔서 감사합니다, 나는이를 수정하고 내 특정 필요를 해결하기 위해 노력할 것입니다을 – diazazar