从字符C#之间的字符串读取多于两位数的变量

时间:2018-07-13 19:28:45

标签: c# string list

我在字符串列表中有多行,并且每行都具有仅具有不同变量的这种结构

line = "14*x1 + 2*x2 + 3*x3 >= 2";

我希望将值14,2和3保存在另一个List<int>

以下代码仅在变量只有一位的情况下有效,因此14将仅保存为4

List<double> list = new List<double>()
foreach (var line in functionlist)
{        
    for (int i = 0; i < line.Length; i++)
    {                    
        if (line[i].Equals('*'))
        {             
            list.Add(line[i-1]);
        }
    }
}

我知道问题是line[i-1],它仅在需要使用'*'和子字符串之前保存数字。我就是不知道。

3 个答案:

答案 0 :(得分:1)

您可以尝试一下。

dict1 = [{'date': '2017/01/03', 'date_count': 2},{'date': '2017/01/03',              'date_count': 2}, 
 {'date': '2017/01/04', 'date_count': 3},{'date': '2017/01/04',   'date_count': 3},
{'date': '2017/01/04', 'date_count': 3},{'date': '2017/01/05',    'date_count': 1}]
df = pd.DataFrame(dict1, index=['s1', 's2','s3','s1','s2','s3'])

答案 1 :(得分:1)

这是使用正则表达式的解决方案:

List<double> numbers = new Regex(@"(\d+)\*x").Matches(line)
                         .Cast<Match>()
                         .Select(m => double.Parse(m.Groups[1].Value))
                         .ToList();

编辑:已更新以解析数字。

答案 2 :(得分:0)

mongod的简单RegEx应该可以解决问题。

from subprocess import call
call(["pkill", "mongod","&"])