gpt4 book ai didi

c# - C#中的正则表达式替换

转载 作者:IT王子 更新时间:2023-10-29 04:07:35 26 4
gpt4 key购买 nike

我对使用正则表达式还很陌生,根据我阅读的一些教程,我无法在我的 Regex.Replace 中正确格式化这一步。

这是我正在处理的场景...当我从列表框中提取数据时,我想将其格式化为 CSV like格式,然后保存文件。使用替换选项是这种情况的理想解决方案吗?

在正则表达式格式化示例之前。

FirstName LastName Salary    Position
-------------------------------------
John Smith $100,000.00 M

正则表达式替换后的建议格式

John Smith,100000,M

当前格式化状态输出:

John,Smith,100000,M

*注意 - 有没有办法用空格替换第一个逗号?

我的代码片段

using(var fs = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write))
{
using(var sw = new StreamWriter(fs))
{
foreach (string stw in listBox1.Items)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(stw);

//Piecing the list back to the original format
sb_trim = Regex.Replace(stw, @"[$,]", "");
sb_trim = Regex.Replace(sb_trim, @"[.][0-9]+", "");
sb_trim = Regex.Replace(sb_trim, @"\s", ",");
sw.WriteLine(sb_trim);
}
}
}

最佳答案

你可以用两个替换来做到这一点

//let stw be "John Smith $100,000.00 M"

sb_trim = Regex.Replace(stw, @"\s+\$|\s+(?=\w+$)", ",");
//sb_trim becomes "John Smith,100,000.00,M"

sb_trim = Regex.Replace(sb_trim, @"(?<=\d),(?=\d)|[.]0+(?=,)", "");
//sb_trim becomes "John Smith,100000,M"

sw.WriteLine(sb_trim);

关于c# - C#中的正则表达式替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117043/

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