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

本文关键字:之间 字符串 获取 | 更新日期: 2023-09-27 18:13:35

我有一个字符串值,如"%2%,%12%,%115%+%55%,..."

样本输入"(%2%+%5%)/5"
步骤1:
获取值2和5
步骤2:
获取表column2和column5的值
步骤3:
from the value (Column2+Column5)/5

如何从字符串
中获取值12115、55

逗号,"+"(符号)

Thanks in Advance.

我引用了这些链接:

  • 查找两个已知值之间的字符串
  • 我如何提取位于括号(圆括号)之间的文本?

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

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

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(',');

Edit:实际上,我想你的意思是你想在"+"上分割,所以它变成了split(',', '+')

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

这就行了。


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

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

使用正则表达式:

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

可以使用拆分和其他东西或通过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);
    }