为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C#中将字符串中的某个数字相乘

如何在C#中将字符串中的某个数字相乘

C#
泛舟湖上清波郎朗 2023-07-09 15:25:01
我正在 winform 中制作一个小工具,使我的工作更轻松一些。我的目标是制作一个可以更改每个索引之前的数字的工具。这是一组具有不同索引的项目:1695、1696 等...我想将每个索引之前的数字乘以 2:输入:(group (index 2589) (item (6 1695 0) (12 1696 0) (18 1697 0) (24 1698 0)))输出:(group (index 2589) (item (12 1695 0) (24 1696 0) (36 1697 0) (48 1698 0)))如何以一种好的方式分割字符串以定位索引之前的数字?
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

您可以使用正则表达式来执行此操作。例如:


Regex regex = new Regex(@"(?<=\()(\d+)(?= \d+ \d+\))");

var input = "(group (index 2589) (item (6 1695 0) (12 1696 0) (18 1697 0) (24 1698 0)))";

// (group (index 2589) (item (12 1695 0) (24 1696 0) (36 1697 0) (48 1698 0)))

var output = regex.Replace(input, (match) => (int.Parse(match.Value) * 2).ToString());

这里的正则表达式模式具有三个组件,用于隔离要相乘的数字。


(?<=\()是积极的向后看,寻找开括号。


(\d+)匹配括号中的第一个数字 - 一个或多个数字


(?= \d+ \d+\))是正向前查找,它搜索一个空格、一个或多个数字,后跟另一个空格、另一个数字和右括号。


正则表达式的匹配结果只是索引号,因此我们可以使用MatchEvaluator委托将其相乘并替换为原始字符串。


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信