私が見つけたSOのサンプルコードと検索中の文字列を使用して、航空機クラスとその座席のグループをキャプチャしようとしています。入力ファイルには、J28W36Y156 という形式の航空機構成が含まれています。これは、28 席の J (ビジネス) クラス、36 席の W (プレミアム エコノミー席)、および 156 席の Y (エコノミー席) を意味します。
私が使用しているJavaコードは次のとおりです。
s = "J12W28Y156";
patternStr = "(\\w\\d+)+";
p = Pattern.compile(patternStr);
m = p.matcher(s);
if (m.find()) {
int count = m.groupCount();
System.out.println("group count is "+count);
for(int i=1;i<=count;i++){
System.out.println(m.group(i));
}
}
正規表現は、LAST クラスの座席構成のみをキャプチャするようです。Y156. この正規表現を取得して、複数のグループのすべてのクラス/座席の組み合わせを取得するにはどうすればよいですか? これは、指定する必要がある「貪欲な」一致と関係がありますか? 出力を配列のようなものにしたいと思います。
{J12、W28、Y156}
みんなありがとう。