1 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用正則表達(dá)式來(lái)執(zhí)行此操作。例如:
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á)式模式具有三個(gè)組件,用于隔離要相乘的數(shù)字。
(?<=\()是積極的向后看,尋找開括號(hào)。
(\d+)匹配括號(hào)中的第一個(gè)數(shù)字 - 一個(gè)或多個(gè)數(shù)字
(?= \d+ \d+\))是正向前查找,它搜索一個(gè)空格、一個(gè)或多個(gè)數(shù)字,后跟另一個(gè)空格、另一個(gè)數(shù)字和右括號(hào)。
正則表達(dá)式的匹配結(jié)果只是索引號(hào),因此我們可以使用MatchEvaluator委托將其相乘并替換為原始字符串。
- 1 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報(bào)