使用C#提取内部带有随机数字的文本

本文关键字:随机 数字 文本 提取 内部 使用 | 更新日期: 2023-09-27 18:20:53

在C#中,如果我有一个长字符串,它总是包含一个格式,如W###S###Q##,其中#可以是任何数字,我如何从字符串中提取W###S##Q##序列。请记住,字符串之前或之后可能有更多内容,但我只对该序列感兴趣。

谨致问候。

使用C#提取内部带有随机数字的文本

Wobbles注释是正确的,像@"W'd{2}S'd{2}Q'd{2}"这样的正则表达式将满足您的需要。'd匹配任何一个十进制数字,然后{2}告诉它精确匹配两次。

这个小提琴举了一个例子,说明如何从较长的琴弦中提取出你想要的琴弦。

Wobbles是对的,正则表达式通常是最好的方法。对于您的特定示例,如果您事先知道W、S、Q部分总是在您可以使用的相同位置:

        string testString = "WSomethingW01S02Q03SomethingElse";
        bool TheRightString = false;
        string WNumString = string.Empty;
        string SNumString = string.Empty;
        string QNumString = string.Empty;
        int StartPosition = 0;
        do
        {
            StartPosition = testString.IndexOf('W', StartPosition);
            WNumString = testString.Substring(StartPosition, 3);
            SNumString = testString.Substring(StartPosition + 3, 3);
            QNumString = testString.Substring(StartPosition + 6, 3);
            StartPosition += 1;
            if (SNumString.StartsWith("S") && QNumString.StartsWith("Q"))
                TheRightString = true;
        } while (TheRightString == false);
        Console.WriteLine(WNumString + SNumString + QNumString);
        Console.ReadKey();