![](/img/trans.png)
[英]Simple C#: How to check String input is both a valid number AND less than a certain number?
[英]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.