这是我的源字符串:

<box><3>
<table><1>
<chair><8>

这是我的Regex Patern:
<(?<item>\w+?)><(?<count>\d+?)>

这是我的物品类
class Item
{
    string Name;
    int count;
    //(...)
}

这是我的物品收藏;
List<Item> OrderList = new List(Item);

我想使用基于源字符串的Item填充该列表。
这是我的职责没用
Regex ItemRegex = new Regex(@"<(?<item>\w+?)><(?<count>\d+?)>", RegexOptions.Compiled);
            foreach (Match ItemMatch in ItemRegex.Matches(sourceString))
            {
                Item temp = new Item(ItemMatch.Groups["item"].ToString(), int.Parse(ItemMatch.Groups["count"].ToString()));
                OrderList.Add(temp);
            }

Threre可能是一些小错误,例如在此示例中缺少字母,因为这是我在应用程序中拥有的内容的更简单版本。

问题在于,最后我在OrderList中只有一个项目。

更新

我知道了
感谢您的帮助。

最佳答案

class Program
{
    static void Main(string[] args)
    {
        string sourceString = @"<box><3>
<table><1>
<chair><8>";
        Regex ItemRegex = new Regex(@"<(?<item>\w+?)><(?<count>\d+?)>", RegexOptions.Compiled);
        foreach (Match ItemMatch in ItemRegex.Matches(sourceString))
        {
            Console.WriteLine(ItemMatch);
        }

        Console.ReadLine();
    }
}

为我返回3个匹配项。您的问题必须在其他地方。

09-17 13:15
查看更多