-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

那可能是

    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 回答
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 回答