int 最大番号=0; for (int i = 0; i <= csv.Count() - 1; i++) { Regex re = new Regex("(?*)", RegexOptions.IgnoreCase | RegexOptions.Singleline); Match mc = re.Match(csv[i]); if (int.Parse(mc.Groups[1].Value.ToString()) > 最大番号) { 最大番号 = int.Parse(mc.Groups[1].Value.ToString()); } }
■No70278 (mina さん) に返信
(と)は正規表現内では1つのまとまりを囲うのに使用するのでそのものの文字として
マッチングする場合、\を付加する必要があります。
\を付加する文字列を書く場合、@を頭に付けると書きやすいです。
括弧内の文字が数値でないとint.Parse出来ないので\d+により数値とマッチングさせる
必要があります。
正規表現 + LINQの例
string[] csv = new string[4] { "ばなな", "ばなな(12)", "ばなな(5)", "ばなな(200)" };
Regex re = new Regex(@"\((?<num>\d+)\)");
int mx = (from dat in csv
let m = re.Match(dat)
where m.Success
select int.Parse(m.Groups["num"].Value)
).Max();
> string[] csv = new string[4] { "ばなな", "ばなな(12)", "ばなな(5)", "ばなな(200)" }; > > Regex re = new Regex(@"\((?<num>\d+)\)"); > > int mx = (from dat in csv > let m = re.Match(dat) > where m.Success > select int.Parse(m.Groups["num"].Value) > ).Max(); >