theRegex="[\\s,*]+"(1つ以上のスペース、コンマ、またはアスタリスク)
入出力 1 2:no 2:no 0.002,*0.998
_["1","2:no","2:no","0.002","0.9"]
編集
入力文字列は"12:no 2:no 0.002、* 0.998"であり、期待される出力は["no"、 "no"、 "0.002"、"0.998"]です。
その場合split、無視するために区切り文字として1扱う必要があるため、単独で使用することはできませんが、のデータの一部でもあります。\d\d0.002
あなたができることは次のとおりです。
Pattern pattern = Pattern.compile("^\\d(?:$|:)");
String[] matches = lines.trim().split("[\\s,*]+");
List<String> output = new LinkedList<String>(Arrays.asList(matches));
for (Iterator<String> it=output.iterator(); it.hasNext();) {
if (Pattern.matcher(it.next()).find()) it.remove();
}
find("^\\d(?:$|:")digitまたはの形式の文字列に一致しますdigit:whatever。パターンは一度コンパイルされてから、リスト内の文字列に適用されることに注意してください。文字列ごとに、マッチャーを作成する必要があります。