したがって、基本的には、 と の間のコンテンツを取得する必要が;
あり:
、:
左側と;
右側にあります。
この正規表現を使用できます: -
"(?<=:)(.*?)(?=;)"
これにはlook-behind
for:
とlook-ahead
forが含まれ;
ます。And は、前に a がcolon(:)
あり、後ろに a が続く文字列に一致しますsemi-colon (;)
。
正規表現の説明: -
(?<= // Look behind assertion.
: // Check for preceding colon (:)
)
( // Capture group 1
. // Any character except newline
* // repeated 0 or more times
? // Reluctant matching. (Match shortest possible string)
)
(?= // Look ahead assertion
; // Check for string followed by `semi-colon (;)`
)
これが作業コードです: -
String str = "abc:def,ghi,jkl;mno:pqr,stu;vwx:yza,aaa,bbb;";
Matcher matcher = Pattern.compile("(?<=:)(.*?)(?=;)").matcher(str);
StringBuilder builder = new StringBuilder();
while (matcher.find()) {
builder.append(matcher.group(1)).append(", ");
}
System.out.println(builder.substring(0, builder.lastIndexOf(",")));
出力: -
def,ghi,jkl, pqr,stu, yza,aaa,bbb