在C#中获取字符串之间的值

时间:2014-07-18 14:32:27

标签: c# string

我有一个像"%2%,%12%,%115%+%55%,..."

这样的字符串值

样本输入"(%2%+%5%)/ 5"
第一步:
    获得第2和第5个数字 第二步:
    从表column2和column5获取值 第三步:
   从该值(Column2 + Column5)/ 5

如何从该字符串中获取值 2,12,115,55

逗号," +" (符号)

先谢谢。

我提到了这些链接:

5 个答案:

答案 0 :(得分:4)

您可以替换%然后拆分,+

var value = "%2%,%12%,%115%+%55%,";

value = value.Replace("%", "");
var individualValues = value.Split(new[] {',', '+'});

foreach (var val in individualValues)
    Console.WriteLine(val);

答案 1 :(得分:1)

str.Replace("%", "").Replace("+",",").Split(',');

这样做。


另一种正则表达式解决方案:

foreach (Match m in Regex.Matches(str, @"\d+"))
    // m.Value is the values you wanted

答案 2 :(得分:1)

如果我理解正确的话......

var string = "%2%,%12%,%115%+%55%";
var values = string.replace("%", "").replace("+", "").split(',');

编辑:实际上,我认为你的意思是你要分开" +"这样就会分裂(',',' +')

答案 3 :(得分:0)

使用正则表达式:

using System.Text.RegularExpressions;

Regex re = new Regex("\\d+");
MatchCollection matches = re.Matches("%2%,%12%,%115%+%55%,...");
List<int> lst = new List<int>();
foreach (Match m in matches)
{
    lst.Add(Convert.ToInt32(m.Value));
}

答案 4 :(得分:0)

可以使用拆分和其他内容或通过Regex解析字符串:

    [TestMethod]
    public void TestGetNumberCommasAndPlusSign()
    {
        Regex r = new Regex(@"[\d,\+]+");
        string result = "";
        foreach (Match m in r.Matches("%2%,%12%,%115%+%55%,..."))
            result += m.Value;

        Assert.AreEqual("2,12,115+55,", result);
    }