gpt4 book ai didi

c# - 自动为文本框中的每一行编号

转载 作者:太空宇宙 更新时间:2023-11-03 21:49:28 25 4
gpt4 key购买 nike

我想为用户放入文本框的每一行自动编号,并将结果显示在另一个文本框中。

转这个
等等等等
一些需要编号的东西
更多内容

对此
1 等等等等
2 一些要编号的东西
还有 3 个要编号的东西

到目前为止我已经
output.Text = Regex.Replace(input.Text, input.Text, @"{1,}+");

但这会将所有文本替换为 {1,}
我似乎无法弄清楚如何在放置数字和空格后循环回每一行。
(我是 c# 的新手)
有什么建议吗?

最佳答案

实现非 Regex 解决方案可能更简单:

var numberedLines = input.Text
.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None)
.Select ((line, index) => (index + 1) + " " + line)
.ToArray();
var result = string.Join(Environment.NewLine, numberedLines);
output.Text = result;

第一行使用 string.Split() 将行周围的字符串拆分为一个数组。然后我使用 LINQ .Select 方法将函数应用于数组中的每个元素 - 在本例中,在每行的开头添加行号和空格 (index + 1 是必需的,因为索引值是从 0 开始的)。然后我使用 string.Join 方法将数组重新组合成一个字符串。

演示:http://ideone.com/DrFTfl


如果您使用 MatchEvaluator 委托(delegate)来应用行号,实际上可以使用正则表达式来完成:

var index = 1;
output.Text = Regex.Replace(input.Text, "^",
(Match m) => (index++).ToString() + " ",
RegexOptions.Multiline);

模式 ^ 通常匹配表达式的开头。但是,对于 RegexOptions.Multiline,它匹配每一行的开头。然后为了替换,我使用一个委托(delegate)(匿名函数)将 # + 空格添加到行的开头,然后增加下一行的索引计数器。

演示:http://ideone.com/9LD0ZY

关于c# - 自动为文本框中的每一行编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com