-2
:C#_Howフォーマット番号の文字列どのようにSUMMARYフォーマット番号の文字列に
Car : 2+9+7+2
Bike : 4+6
Ship : 3+8
マイコード:
これは私の出した文字列であるCar2Bike4Ship3Bike6Car9Ship8Car7Car2
: 文字列の入力を
String source = “Car2Bike4Ship3Bike6Car9Ship8Car7Car2”;
var result = Regex
.Matches(source, @"(?<name>[A-z_[ạảàáãăắẳằặẵâấẩầậẫóỏòọõôốổồộỗơớởờợỡéèẻẹẽêếềểệễúùủụũưứừửựữíìỉịĩýỳỷỵỹđ_ẠẢÀÁÃĂẮẲẰẶẴÂẤẨẦẬẪÓỎÒỌÕÔỐỔỒỘỖƠỚỞỜỢỠÉÈẺẸẼÊẾỀỂỆỄÚÙỦỤŨƯỨỪỬỰỮÍÌỈỊĨÝỲỶỴỸĐ_a-z]+)(?<size>([0-9]+\.[0-9])|([0-9]+))")
.OfType<Match>()
.Select(match => new
{
name = match.Groups["name"].Value,
size = double.Parse(match.Groups["size"].Value),
})
.GroupBy(value => value.name)
.Select(chunk => String.Format("{0}: {1}",
chunk.Key, String.Join(" + ", chunk.Select(item => item.size))));
String report = String.Join(Environment.NewLine, result);
report = report.Replace(": 0", ":");
report = report.Replace(": +", ":");
txbkqvl.Text = Convert.ToString(report);
ここでは、SUMARYを先行させ、特別な項目「CAR」を処理したいと考えています。次のようになります。
11 Car :
2 Unit(s) 2
1 Unit(s) 9
1 Unit(s) 7
10 Bike : 4+6
11 Ship : 3+8
私のコードはトレンドになっています。 ありがとうございました!合計の追加
文字を照合するには、C#正規表現で '\ p {L}'を使用します。綴りの範囲は必要ありません。 –
ありがとうございます。私の言語にはUnicode文字が含まれています。これはまさに私の場合と同じです。 :D –