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

C# 获取C中字符串之间的值#,c#,string,C#,String,我有一个字符串值,比如%2%,%12%,%115%+%55%,…“ 样本输入“(%2%+%5%)/5” 第1步: 获取谷2和谷5 第二步: 从表第2列和第5列获取值 第三步: 从该值(第2列+第5列)/5 如何从该字符串中获取值 2,12115,55 也 逗号“+”(符号) 提前谢谢 我参考了以下链接: 这就行了 另一个正则表达式解决方案: foreach (Match m in Regex.Matches(str, @"\d+")) // m.Value is the val

我有一个字符串值,比如
%2%,%12%,%115%+%55%,…“

样本输入“(%2%+%5%)/5”
第1步:
获取谷2和谷5
第二步:
从表第2列和第5列获取值
第三步:
从该值(第2列+第5列)/5

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

逗号“+”(符号)

提前谢谢

我参考了以下链接:

这就行了


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

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

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

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

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

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

如果我理解正确的话

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

编辑:实际上,我想你的意思是想在“+”上拆分,这样就变成了拆分(“,”,“+”)

使用正则表达式:

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));
}
使用System.Text.regular表达式;
正则表达式re=新正则表达式(\\d+);
MatchCollection matches=re.matches(“%2%,%12%,%115%+%55%,…”);
List lst=新列表();
foreach(匹配中的匹配m)
{
lst.Add(转换为32(m.Value));
}

可以使用拆分和其他内容或通过正则表达式解析字符串:

    [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);
    }

到目前为止有什么努力吗
String.Split
方法,该方法接受字符数组。字符串URL是否已编码?发布您想要的确切输出,您的问题并不完全清楚。质量差的问题。您已经编写了详细的伪代码,但尚未显示实际的尝试。链接不行。好的,谢谢。。。我会尽力的。然后我会带着更好的代码回来。逗号,“+”(符号)不,因为还有一个
+
符号。这不是他要的吗?对不起,如果我不明白OP的问题。我希望这次能奏效:)@SidM-ya。。。检查时间戳。我看到这种解决方案很快就会弹出,然后由于输入错误/小错误再次被删除,但实际上我认为完全不进行替换而只运行
.Split(new[]{',',','+','%},StringSplitOptions.removeMptyEntries)更酷
    [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);
    }