数字求和\d+◉✪◒$= Regex.Split($&, "\r?\n").Cast<Match>().Sum(m => int.Parse(m.Value))
代码不对请问怎么在句子后面追加句子中数字和,不会写,能教我怎么写吗
示例文本:15加35等于多少?
正则: .+ (匹配你需要求和的句子)
替换为:$= Regex.Matches($&, @"\d+(\.\d+)?").Cast<Match>().Select(m => double.Parse(m.Value)).Sum().ToString()
结果为:50
如果你想得到 15加35等于多少?50 ,上面的表达式前面改一下 $= $& + Regex.Matches..... 就行。
感谢回答,测试了一下,它对每一行数字分别进行了求和,我想对这个句子(多行)出现的数字进行求和,应该改哪里呢?
麻烦给出示例文本和期望的结果文本
15和35还有44和77试了一下开头用[\s\S]+ 匹配所有字符解决了[\s\S]+◉✪◒$= $& + Regex.Matches($&, @"\d+(\.\d+)?").Cast<Match>().Select(m => double.Parse(m.Value)).Sum().ToString()
嗯,我那个 .+ 是个示例正则,你想哪一部分求和,这个正则就改成匹配这部分的。
这里你是想匹配所有字符(跨行),可以用 (?s).+ 或者你这个也行。