c# - 正则表达式过滤代码段
问题描述
我目前正在开发基于 RCON 的工具,它接收代码段,如下所示:Player #5 Thomas Lagerfeuer - BE GUID: d4cd8d8bbc8658007536c3ada1ff7b80
现在我的问题是我只需要最后的 GUID,但我不知道如何过滤它。我已经阅读了一些关于正则表达式的教程,但老实说,它们让我越来越困惑。
我现在所做的如下:
string msg = args.Message;
Console.WriteLine(msg);
//[2018-05-17 | 14:36:28] Player #5 Thomas Lagerfeuer - BE GUID: d4cd8d8bbc8658007536c3ada1ff7b80
string pattern = "(RCon\\.? |admin\\.? |BE GUID:\\.? |#([0-9])\\.? |Player\\.? |BE GUID: \\.? |logged in\\.?)";
string guid = Regex.Replace(msg, pattern, String.Empty);
有人可以帮我吗???
解决方案
基于字符串的简单性,Regex 不是必需的。但我将展示这两种选择。
字符串拆分
您可以只拆分字符串:
var s = "Player #5 Thomas Lagerfeuer - BE GUID: d4cd8d8bbc8658007536c3ada1ff7b80";
var guid = s.Split(new[] {"GUID: "}, StringSplitOptions.None)[1];
正则表达式
您可以使用组捕获 GUID:
var s = "Player #5 Thomas Lagerfeuer - BE GUID: d4cd8d8bbc8658007536c3ada1ff7b80";
var guid = Regex.Match(s, "GUID: (\\w+)").Groups[1].Value;
推荐阅读
- vue.js - Vuetify:我的导航抽屉位于另一个元素(工具栏)上
- python - Python - 如何使用 exec() 方法传递参数?
- excel - 我如何计算一个单词的出现次数(不是总出现次数)?
- spring-boot - Docker - 为 root 用户配置了空密码的 mysql
- java - 依赖注入到 Spring Servlet 上下文 (OncePerRequestFilter)
- reactjs - 属性子项会被覆盖吗?
- python - Gurobi/Python:设置为列表的元素
- c# - 将 .netcore 2.2 升级到 .NET 5 后出现 LINQ 错误
- java - 存在重复键时 Java guava Splitter 失败
- java - 如何在debian上安装com.mysql.jdbc.Driver来连接数据库java