2
我隨機字符串,例如"aaaaaaBccccCCCCd"
我需要做的正則表達式,其搜索的文本組以獲得效果"a6B1c4C4d1"
。我的正則表達式看起來像那個"(\\D+)\\D*\\1"
,但他失去了單個字母,所以在這個樣本B
和d
。Java的正則表達式的壓縮字符串
也許會有人有一個想法?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Compress {
public static void main(String[] args) {
String text = "aaaaaaBccccCCCCd";
String regex = "(\\D+)\\D*\\1"; // or (.+).*\\1
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
String result = new String();
while (matcher.find()) {
String letter = matcher.group().substring(0, 1);
String numberOfLetter = String.valueOf(matcher.group().length());
result = result + letter + numberOfLetter;
}
System.out.println(result);
}
}
謝謝。
爲什麼'\ D'?你只針對非數字嗎? –
是的,只有非數字 –