从 C# 中的行中提取 GUID

2023-11-22

我尝试使用 IndexOf 来简化一些遗留代码,以从行中检索 GUID。我可以进一步简化下面的代码以摆脱使用 guids.Any 和 guids.First 吗?

// Code using regular expression
private static string RetrieveGUID2(string[] lines)
{
    string guid = null;
    foreach (var line in lines)
    {
        var guids = Regex.Matches(line, @"[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?")
            .Cast<Match>().Select(m => m.Value);
        if (guids.Any())
        {
            guid = guids.First();
            break;
        }
    }
    return guid;
}

下面是编译示例中给出的遗留代码:

using System;
using System.Linq;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var lines = new[]
            {
                "</ItemGroup>\n",
                "<PropertyGroup\n",
                "Label = \"Globals\">\n",
                "<ProjectGuid>{A68615F1-E672-4B3F-B5E3-607D9C18D1AB}</ProjectGuid>\n",
                "</PropertyGroup>\n"
            };

            Console.WriteLine(RetrieveGUID(lines));
            Console.WriteLine(RetrieveGUID2(lines));
        }

        // Legacy code
        private static string RetrieveGUID(string[] lines)
        {
            string guid = null;
            foreach (var line in lines)
            {
                var startIdx = line.IndexOf("<ProjectGuid>{", StringComparison.Ordinal);
                if (startIdx < 0) continue;
                var endIdx = line.IndexOf("</ProjectGuid>", StringComparison.Ordinal);
                if (endIdx < 0) continue;
                startIdx += "<ProjectGuid>".Length;
                var guidLen = endIdx - startIdx;
                guid = line.Substring(startIdx, guidLen);
                break;
            }
            return guid;
        }

        // Code using regular expression
        private static string RetrieveGUID2(string[] lines)
        {
            string guid = null;
            foreach (var line in lines)
            {
                var guids = Regex.Matches(line, @"[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?")
                    .Cast<Match>().Select(m => m.Value);
                if (guids.Any())
                {
                    guid = guids.First();
                    break;
                }
            }
            return guid;
        }
    }
}

是的你可以。因为您只返回正则表达式的第一个匹配项,所以您可以使用Regex.Match代替Regex.Matches.

private static string RetrieveGUID2(string[] lines)
{
    foreach (var line in lines)
    {
        var match = Regex.Match(line, @"[{(]?[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}[)}]?");
        if (match.Success)
          return match.Value;
    }

    return null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C# 中的行中提取 GUID 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 您是否应该仅使用准备好的语句进行转义? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我看到很多人说你应该始终使
  • 如何在 opencv 中使用矩阵 R 和 T(外部参数矩阵)转换图像?

    我有一个旋转平移矩阵 RT 3x4 opencv中是否有一个函数可以执行 RT 描述的旋转平移 我认为这个问题的很多解决方案都做出了隐藏的假设 我将尝试向您快速总结一下我对这个问题的看法 过去我不得不考虑很多 两个图像之间的变形是一个二维过
  • 使用python将此html文件转换为xml文件的最佳方法

    这个html是here div table width 720 border 0 cellspacing 0 cellpadding 0 align center height 130 tr height 129 tr table div
  • 在 C# 中将未知格式的字符串转换为日期

    我在 stackoverflow 上搜索了答案 但没有运气 我正在开发一个 Windows 应用程序 我有一些不同日期格式的字符串 例如 dd MM yyyy MM dd yyyy MM dd yyyy dd MM yyyy dd MM y
  • 如何配置 Tomcat 不区分大小写的 URL?

    我需要 Tomcat 中的 URL 不区分大小写 我的意思是当我在浏览器的地址栏中写入例如 http localhost index htm 时 不等于 http localhost INDEX htm 然后我收到错误 因为此页面 INDE
  • UpdatePanel 上的 AsyncPostBackTrigger 和 PostBackTrigger 之间的区别? [复制]

    这个问题在这里已经有答案了 我有一个GridView 加州大学洛杉矶分校 在我的UpdatePanel upnl列表 在我的里面ucLAD我有一个复选框和一个操作rowClicked
  • statx 需要哪些功能才能停止提供 EPERM

    我有一个 Qt 项目 它使用一个插件接口 可以在我的系统上正常编译 然而 当在 docker 内编译同一个项目时 它停止使用 Qt 5 10 1 并给出消息Error Undefined interface 经过一些straceing th
  • 版本冲突更新到8.4.0

    Error 任务 app processDebugGoogleServices 执行失败 请 通过更新版本来解决版本冲突 google services 插件 最新版本信息为可以在这里找到 或将 com google android gms
  • Python 输入永远不等于整数[重复]

    这个问题在这里已经有答案了 我想插入一个数字 如果我输入 4 以外的任何数字 它会告诉我这是错误的 但如果它是假的 它会告诉我 gg 你赢了 菜鸟 但是当我插入 4 时 它告诉我这是不正确的 x input Insert a numer w
  • C# 中对 GRPC 的 TLS 支持

    我对 C 相当陌生 我需要使用基于 TLS 的 GRPC 作为一次演练 我正在修改中提供的示例主要 grpc 仓库使用 TLS 为此 我发现了另一个问题 似乎是一个很好的答案 如何为 gRPC 启用服务器端 SSL 但是 我收到错误Unha
  • 如何在现有的 momentjs 对象中获取没有时间的日期?

    假设我有如下的 momentjs 对象 var date moment new Date 2014 2 17 9 60 我怎样才能在没有时间的情况下克隆并获取新的 momentjs 对象 对于 moment 1 7 及以上版本 只需使用 s
  • MySql 一般错误:2053

    我收到错误 错误 SQLSTATE HY000 一般错误 2053 我不知道为什么会发生这种情况 因为代码工作正常并且数据库已更新 但它仍然返回此错误 这是我的代码
  • Angular Material - mat-table 不渲染来自rest api 的数据

    我一直在努力实施this来自 Angular Material 的表格示例 没有运气 我不明白我做错了什么 我的 REST 端点提供的数据在控制台输出上清晰可见 我的怀疑是 当呈现表格时 数据可能还没有完全加载 任何帮助表示赞赏 谢谢 la
  • Rails ActiveRecord 按日期查找/搜索

    我试图按 created at 日期查找记录 数据库列类型为 datetime 并且 我正在使用 jQuery 的 UI DatePicker 我的网址如下所示 localhost 3000 users supported selected
  • 当前上下文中不存在 Server.MapPath

    我有一个 C 模型类 我正在尝试访问 cshtml页面应该是电子邮件格式模板 我正在使用以下代码 string body string Empty using StreamReader reader new StreamReader Ser
  • 为什么 Web 服务返回数据为 msg.d

    我发现我的网络方法返回的数据为 d id 1 itemtxt Masters id 2 itemtxt Transactions id 3 itemtxt Misch Reports 如果您注意到 该数组被命名为 d 这是为什么 有什么规定
  • pyenv:构建失败(Fedora 34 使用 python-build 20180424)

    我需要帮助通过 pyenv 安装 python pyenv v pyenv 1 2 27 我尝试安装3 6 8版本 pyenv install 3 6 8 我收到错误 正在下载 Python 3 6 8 tar xz gt https ww
  • 在匿名函数中测试 JavaScript 函数

    是否可以测试myInnerFunction below var val function var myInnerfunction function input return input I ADDED THIS return myInner
  • PHP:7 PDO fetch(All) 尝试将类型转换为关联类型

    今天我发现我们的代码似乎与 PDO 的更改向后不兼容 在 PHP PDOStatement通过其职能fetch and fetchAll返回其值为字符串或 null 的行 我们的代码依赖于这个属性 不久前我们更新到了 PHP 7 事实证明
  • 从 C# 中的行中提取 GUID

    我尝试使用 IndexOf 来简化一些遗留代码 以从行中检索 GUID 我可以进一步简化下面的代码以摆脱使用 guids Any 和 guids First 吗 Code using regular expression private s