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
\d
0.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
。パターンは一度コンパイルされてから、リスト内の文字列に適用されることに注意してください。文字列ごとに、マッチャーを作成する必要があります。