var text = "dejdo8月dksk12月diwk"; text = Regex.Replace(text, @"\d+月", ""); 0079デフォルトの名無しさん (アウアウウー Sa5b-+DFt)2018/02/05(月) 23:26:17.82ID:ubowXTd5a 123456789月火水木金土 0080愛恥人2018/02/05(月) 23:54:36.42 using System.Text.RegularExpressions;
var monthPattern = new Regex(@"(\d+)月([^火水木金土日])"); var monthRemover = new MatchEvaluator(mc => Enumerable.Range(1, 12).Contains(int.Parse(mc.Groups[1].Value)) ? mc.Groups[2].Value : mc.Value); var inputText = "kok3月rq12月12461123456789月火水木金土"; var monthRemovedText = monthRegex.Replace(inputText, monthRemover); 0081愛恥人2018/02/05(月) 23:56:41.11 間違えた(>_<) 0082愛恥人2018/02/06(火) 00:14:56.39 2箇所(>_<) 0083デフォルトの名無しさん (アウアウウー Sa5b-+DFt)2018/02/06(火) 01:21:47.08ID:PO3wsN6Da 普通に正規表現使えばいいのに… [1-9]とか|とか1[0-2]とか 0084デフォルトの名無しさん (ワッチョイ 9775-uWnk)2018/02/06(火) 01:41:51.19ID:XGJpv/sv0 9999999月火水木金 0085デフォルトの名無しさん (ワッチョイ f781-MydX)2018/02/06(火) 02:00:35.27ID:ZfaRyY6g0 すみません、曜日ではなく年月の月なんです。 0086デフォルトの名無しさん (ワッチョイ ff80-g5j1)2018/02/06(火) 02:01:52.73ID:tiswDOzX0 数字が、1〜2回
\d{1,2}月 0087デフォルトの名無しさん (アウアウエー Sadf-Og17)2018/02/06(火) 03:07:18.11ID:0D5TLInma>>85 細かいけど、リーディングゼロとか、ゼロ以外の数が前にくっついてた場合 どう処理すべきかはっきりした方がいいかも 0088デフォルトの名無しさん (ワッチョイ f781-MydX)2018/02/06(火) 06:20:06.81ID:ZfaRyY6g0>>78-87 アドバイスありがとうございます。 やってみます。 0089デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:01:18.07ID:eVD8eHcS0 var list_hoge = new List<Data_hoge>() { new Data_hoge(){Key="1",Value=22 ,Flag=true}, new Data_hoge(){Key="2",Value=23 ,Flag=true}, new Data_hoge(){Key="3",Value=24 ,Flag=false}, new Data_hoge(){Key="4",Value=23 ,Flag=true}, };
この様なデータがあったときKeyに相当する引数(int=1〜4)を入れると Flagがtrueのものの中でvalueが最大値を取るならtrueを返すメソッドを作りたいのですが どうすればいいでしょうか? LINQだと嬉しいです 0090デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:08:20.72ID:eVD8eHcS0 public bool saidaichidesu(int x) { var list_hoge = new List<Data_hoge>() { new Data_hoge(){Key="1",Value=22 ,Flag=true}, new Data_hoge(){Key="2",Value=23 ,Flag=true}, new Data_hoge(){Key="3",Value=24 ,Flag=false}, new Data_hoge(){Key="4",Value=23 ,Flag=true}, };
var flaggedList_hoge = list_hoge.Where(data => data.Flag); if (flaggedList_hoge.Count() > 0) { var maxValue = flaggedList_hoge.Max(data => data.Value); この先どう書けばいいかわからない } return false; } 0091恥人2018/02/06(火) 08:23:21.72 Keyに相当する引数の役割は? 0092デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:26:12.74ID:eVD8eHcS0 位置、座標の様なものになります 0093恥人2018/02/06(火) 08:32:59.69 最大値を持つ要素の中でKeyがxと一致するものを返したいということ? 0094デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 08:40:29.46ID:eVD8eHcS0 最大値をもっているもののkey(複数あり)がxと一致するかどうかを確認して、一致するならtrueを返したいです keyがstringになっていますがこれをintにしても構いません 0095デフォルトの名無しさん (ワッチョイ f7e3-uppE)2018/02/06(火) 08:56:28.56ID:xtryCv8p0 こんな誰でもできることイチイチ人に聞いてるの? 0096デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 10:10:37.94ID:vApM+tA70 寧ろ多くの人は解らんと思うが、、、先ずは質問の意味が正確に解るかどうかだな。 それが最大の問題だ。 「質問はすでにその中に解を含んでいる」、質問者が質問を正確に組み立てられないのは質問者の 責任として放置される性質のものではなくて、回答者の技量によって正確な質問に 組み立て直す。これは頭のいい回答者の責任になる。 でその役割りが君というわけだ。 0097デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 10:21:16.59ID:vApM+tA70 saidaichidesu(1) −−> False saidaichidesu(2) −−> true saidaichidesu(3) −−> false saidaichidesu(4) −−> true saidaichidesu(その他) −−> false 上の例ではこういうリターンを期待してる? もしこうであれば簡単だよ。 0098デフォルトの名無しさん (ワッチョイ f7f7-NsDz)2018/02/06(火) 10:55:56.66ID:eVD8eHcS0>>97 はい!それと同じです! 0099デフォルトの名無しさん (ワッチョイ 179d-jn1r)2018/02/06(火) 11:26:06.22ID:vApM+tA70 class Data_hoge{ public string Key; public int Value; public bool Flag; } public bool saidaichidesu(int x) { List<Data_hoge> list_hoge = new List<Data_hoge>() { new Data_hoge(){Key="1",Value=22 ,Flag=true}, new Data_hoge(){Key="2",Value=23 ,Flag=true}, new Data_hoge(){Key="3",Value=24 ,Flag=false}, new Data_hoge(){Key="4",Value=23 ,Flag=true} };
public bool IsMax(string key) { var hogeList = new List<Data_hoge>() { new Data_hoge(){Key="1",Value=22 ,Flag=true}, new Data_hoge(){Key="2",Value=23 ,Flag=true}, new Data_hoge(){Key="3",Value=24 ,Flag=false}, new Data_hoge(){Key="4",Value=23 ,Flag=true}, }; var max = hogeList.Max(x => x.Flag ? Value :Int32.MinValue); return hogeList.Any(x => x.Fkag && x.Key == key && x.Value == max); } 試してないけどこんな感じでいける気が