繁体   English   中英

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

[英]Split and reformat a String using Regex

我有一个像这样的字符串变量:

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

在C#中使用正则表达式,我希望输出如下:

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格式化输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM