c# - 获取字符串的一部分 - C# .NET Core 3.1
问题描述
我有一个日志中的字符串行:
2020-09-07 14:41:17.268 +01:00 [Information] Hello, Serilog!
我想Information
从中提取这个词string
,但是,这会改变,因为它可能是debug
,或任何其他已知的日志记录级别。
我也想要这条消息,]
在这种情况下是Hello, Serilog!
. 这也可能会发生变化,但不会比现有消息长。
字符串来自StringReader
using (StringReader reader = new StringReader(message.ToString())) // message from StringWriter
{
var readText = reader.ReadLine();
Console.WriteLine(readText);
}
做这个的最好方式是什么?
解决方案
使用正则表达式将输出Information: Hello, Serilog!
string type;
string message;
string text = "2020-09-07 14:41:17.268 +01:00 [Information] Hello, Serilog!";
string pattern = "\\[(.*?)\\]";
var match = Regex.Match(text, pattern);
if (match.Success)
{
type = match.Groups[1].Value;
message = text.Substring(match.Groups[1].Index + match.Groups[1].Length + 1);
Console.WriteLine(type + ": " + message);
}
推荐阅读
- scala - Scala Left Join 返回 Full Join 的结果
- angular - forkJoin 上的 takeUntil 是否会调用 forkJoined observables 上的函数?
- vuepress - 只有我通过纱线尝试时,Vuepress 开发服务器无法正常工作
- javascript - 如何使用 Jquery 获取添加的输入字段的值?
- python - 如何从 Python 发送 AMP 电子邮件?它在技术上与普通电子邮件有何不同
- ios - 将 httpBody 转换为 x-www-urlencoded
- sql - SAS 通过在 SQL 中处理,添加一个计数器
- gradle - 将 kapt 与多平台子项目一起使用
- python-2.7 - 获取'ClientError:调用HeadObject操作时发生错误(403):Forbidden'同时使用boto3进行文件的跨帐户复制
- java - 为什么 Hikari 构造了一个错误的数据库 url?