使用正则表达式拆分和重新格式化字符串

Split and reformat a String using Regex

我有一个字符串变量,如:

string data= "#FirstName=Arvind #LastName= Chaudhary_009"

在 C# 中使用 Regex 我想要这样的输出:

FirstName = Arvind;
LastName= Chaudhary009;

会有更多的方法可以做到这一点。其中两个是

string data = "#FirstName=Arvind #LastName= Chaudhary_009";
data = data.Replace("_", "");
data = data.Replace("=", " = ");
string[] dt = data.Split(new char[] {'#'}, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(dt[0]); // Print your array here

正则表达式:您要求的

Regex regex = new Regex(@"#");
string[] dt1 = regex.Split(data).Where(s => s != String.Empty).ToArray();
Console.WriteLine(dt1[0]); // Print your array here

你可以按照你想要的方式打印数组

编辑

了解评论中的要求后

string data = "#FirstName=Arvind #LastName= Chaudhary_009";
data = data.Replace("_", "");
string[] dt = data.Split(new char[] {'#'}, StringSplitOptions.RemoveEmptyEntries);

Regex regex = new Regex(@"#");
string[] dt1 = regex.Split(data).Where(s => s != String.Empty).ToArray();

foreach(string d in dt)
{
    //this will print both the line
    Console.WriteLine(d);
}

foreach(string d in dt1)
{
    //this will print both the line
    Console.WriteLine(d);
}

会有很多解决方案。我建议您使用 .NET Regex Tester 或类似的在线工具来帮助开发运行良好的正则表达式。

一个简单的正则表达式示例,将为您提供一些组:

#FirstName\s*=\s*(.*)\s?#LastName\s*=\s*(.*)_(.*)

运行 然后根据组 1、2、3 格式化输出。