簡體   English   中英

如何在C#中的字符串中將某個數字乘以

[英]How to multiple a certain number in a string in C#

我正在用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)))

如何以良好的方式拆分字符串以在索引之前定位數字?

您可以使用正則表達式來執行此操作。 例如:

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委托將其相乘並替換為原始字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM