在C#中使用正则表达式为字符串添加分隔符

本文关键字:字符串 添加 分隔符 正则表达式 | 更新日期: 2023-09-27 17:59:27

假设字符串为:

string x = "0000000000";

我想在从末尾开始的每个3个字符组后面添加一个类似"."的分隔符。

输出应为:

0.000.000.000

我怎么能这么做?

在C#中使用正则表达式为字符串添加分隔符

您需要使用以下正则表达式:

('d)(?=(?:'d{3})+(?!'d))

并更换为$1.

以下是RegexStorm演示(请参阅该页面上的Context选项卡)

var rx = new Regex(@"('d)(?=(?:'d{3})+(?!'d))");
var res = rx.Replace("0000000000", "$1.");
(?=(?:'d{3})+$)

您可以简单地使用它并用.替换。请参阅演示。

https://regex101.com/r/vH0iN5/13

作为-regex解决方案,您可以使用MoreLINQ中的Batch来获得大小相等的字符串,并将其反转,然后与string.Join类似地组合;

string s = "0000000000";
var group = s.Batch(3, p => new string(p.ToArray())).ToList();
group.Reverse();
var result = string.Join(".", group);
Console.WriteLine(result); // 0.000.000.000