C#在字符串中搜索特定的模式,然后放入Array

|| 我以以下字符串为例:
<tr class=\"row_odd\"><td>08:00</td><td>08:10</td><td><a href=\"editactivity.php?act=11111\">TEST1</a></td></tr><tr class=\"row_even\"><td>08:10</td><td>08:15</td><td><a href=\"editactivity.php?act=22222\">TEST2</a></td></tr><tr class=\"row_odd\"><td>08:15</td><td>08:20</td><td><a href=\"editactivity.php?act=33333\">TEST3</a></td></tr><tr class=\"row_even\"><td>08:20</td><td>08:25</td><td><a href=\"editactivity.php?act=44444\">TEST4</a></td></tr><tr class=\"row_odd\"><td>08:25</td><td>08:30</td><td><a href=\"editactivity.php?act=55555\">TEST5</a></td></tr>
我需要将输出作为一维数组。 像11111 = myArray(0),22222 = myArray(1),33333 = myArray(2),...... 我已经尝试过myString.replace,但是似乎只能以这种方式替换单个Char。因此,我需要使用表达式和for循环来填充数组,但是由于这是我的第一个c#项目,所以对我来说那是一座桥梁。 谢谢,     
已邀请:
似乎您想使用正则表达式搜索模式。然后将匹配项(使用命名组)返回到数组中。
var regex = new Regex(\"act=\\?(<?Id>\\d+)\");
regex.Matches(input).Cast<Match>()
     .Select(m => m.Groups[\"Id\"])
     .Where(g => g.Success)
     .Select(g => Int32.Parse(g.Value))
     .ToArray();
(附言。我对正则表达式模式不满意-您应该自己检查一下)。     
有几种方法可以做到这一点。几个是: a)使用正则表达式在字符串中查找所需内容。使用了一个命名组,因此您可以直接访问匹配项 http://www.regular-expressions.info/dotnet.html b)在子字符串所在的位置拆分表达式(例如,在\“ act = \”上拆分)。您将需要做更多的解析才能获得所需的内容,但这并不困难,因为它会在分割字符串的开头(并且您的其他字符串中没有子字符串) )     
使用IndexOf和Substring的组合...类似的事情会起作用(不确定您的字符串有多少变化)。这可能比您想出的任何正则表达式都快。尽管查看字符串的长度,但这可能并不是真正的问题。
    public static List<string> GetList(string data)
    {
        data = data.Replace(\"\\\"\", \"\"); // get rid of annoying \"\'s
        string[] S = data.Split(new string[] { \"act=\" }, StringSplitOptions.None);
        var results = new List<string>();

        foreach (string s in S)
        {
            if (!s.Contains(\"<tr\"))
            {
                string output = s.Substring(0, s.IndexOf(\">\"));
                results.Add(output);
            }

        }
        return results;
    }
    
使用带有
strinng-variable.split()
函数的
\"<tr>\",\"</tr>\",\"<td>\",\"</td>\", \"<a>\",\"</a>\"
之类的HTML标记分割字符串。这为您提供了数组列表。 将HTML行拆分为字符串数组     

要回复问题请先登录注册