使用C#在内部使用随机数提取文本

时间:2014-09-07 13:51:23

标签: c# string extract

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

问候。

2 个答案:

答案 0 :(得分:1)

摆动评论是正确的,regular expression@"W\d{2}S\d{2}Q\d{2}"可以满足您的需求。 \d匹配任何十进制数字,之后{2}告诉它匹配两次。

This fiddle给出了一个如何从较长的字符串中提取所需字符串的示例。

答案 1 :(得分:1)

摆动是正确的,正则表达式是一般的最佳方式。对于您的具体示例,如果您事先知道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();