c# - 根据特定要求拆分我的字符串
问题描述
我写了一个从字符串中提取某些信息的小方法。这种字符串的一个例子是
"Author: rajdra1 Subject: Sticky Note Date: 09-08-2018 11:06:56"
现在我需要将此字符串中的某些信息放入我的字符串数组中,例如作者、主题、日期。
我的方法——
Public void SplitString()
{
string input = "Author: rajdra1 Subject: Sticky Note Date: 09-08-2018
11:06:56";
string[] result = input.Split(new string[] {": "},
StringSplitOptions.RemoveEmptyEntries);
foreach (var value in result)
{
Console.WriteLine(value);
Console.ReadLine();
}
}
我得到的结果如下:
{"rajdra1 Subject", "Sticky Note Date", "09-08-2018 11:06:56"}
但我的预期输出是:
{"rajdra1", "Sticky Note", "09-08-2018 11:06:56"}
实际上,我从 .txt 文件中获取此输入,并且我总是以以下格式获取输入
"Author: rajdra1 Subject: Sticky Note Date: 09-08-2018 11:06:56"
我正在考虑将“作者”、“主题”和“日期”作为列标题,并且我想在特定标题下添加预期结果。
解决方案
可以使用正则表达式从该字符串中提取作者、主题和日期:
var myRegex = new Regex(@"Author:\s+(?<author>.*)\sSubject:\s+(?<subject>.*)\s+Date:\s+(?<date>.*)", RegexOptions.None);
var strTargetString = @"Author: rajdra1 Subject: Sticky Note Date: 09-08-2018 11:06:56";
var str = new string[3];
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
str[0] = myMatch.Groups["author"].Value;
str[1] = myMatch.Groups["subject"].Value;
str[2] = myMatch.Groups["date"].Value;
}
推荐阅读
- c++ - DirectX 索引缓冲区 -> 索引缓冲区的开始
- addressbook - 如何使用 UserService 获取当前用户的完整详细信息,包括他们的默认地址?
- amazon-web-services - 如何重置 AWS codebuild 中的环境变量?
- c++ - 复合模如何在 C++ 中工作?
- c# - 如何使用代码在 Microsoft Teams 上启用可访问性
- django - Django - 每次从表中添加或删除索引都会对数据库和迁移产生问题吗?
- python - 服务器/客户端应用程序和 JSONDecodeError:未终止的字符串 python
- c - C 中的静态变量如何保存在内存中?
- grails - Grails 客户端表单验证
- google-sheets - 我们如何防止 Google 表格变慢