-1

次のテキストが(文字列配列で)与えられたとします

engine.STEPCONTROL("00000000","02000001","02000043","02000002","02000007","02000003","02000008","02000004","02000009","02000005","02000010","02000006","02000011");
    if("02000001" == 1){
        dimlevel = 1;
    }
    if("02000001" == 2){
        dimlevel = 3;
    }

引用符の間にある文字列を抽出して、別の文字列配列に入れたいと思います。たとえば、抽出された string[] には、00000000、02000001、02000043... が含まれます。

これに最適なアプローチは何ですか?これらの行を何らかの方法で解析して分割するには、正規表現を使用する必要がありますか?

4

2 に答える 2

1

個人的には、正規表現は必要ないと思います。入力文字列が常に説明どおりであり、エスケープシーケンスが含まれていないか、他の方法で変化していないことが確実な場合は、次のようなものを使用できます。

    public static string[] ExtractNumbers(string[] originalCodeLines)
    {
        List<string> extractedNumbers = new List<string>();

        string[] codeLineElements = originalCodeLines[0].Split('"');
        foreach (string element in codeLineElements)
        {
            int result = 0;
            if (int.TryParse(element, out result))
            {
                extractedNumbers.Add(element);
            }
        }

        return extractedNumbers.ToArray();
    }

これは必ずしも最も効率的な実装ではありませんが、非常に短く、その機能を簡単に確認できます。

于 2012-07-06T13:25:01.187 に答える
1

それは可能性があります

    string data = "\"00000000\",\"02000001\",\"02000043\"".Replace("\"", string.Empty);
    string[] myArray = data.Split(',');

または1行で

 string[] data = "\"00000000\",\"02000001\",\"02000043\"".Replace("\"", string.Empty).Split(',');
于 2012-07-06T12:59:48.693 に答える