Skip to main content
 首页 » 编程设计

c#之使用正则表达式解析多个XML标签

2024年01月21日32cyq1162

我需要从am XML解析一些标签(它们的值)。这必须由正则表达式完成(不要问我为什么:))

例如:

 <name>AAA</name> 
 <id>1234</id> 
 <gender>M</gender> 


我知道使用正则表达式每个标签所需的模式

string name =  "(?<=<name>).+?(?=</name>)"; 
string id = "(?<=<id>).+?(?=</id>)"; 
string gender = "(?<=<gender>).+?(?=</gender>)"; 


我只是不知道如何初始化 Regex对象来处理所有这些对象。

我可以:

private static readonly Regex rgx1 = new Regex(name); 
private static readonly Regex rgx2 = new Regex(id); 
private static readonly Regex rgx3r = new Regex(gender); 


但我猜这是一个可怕的浪费。

所以我的问题是:如何初始化单个 Regex以处理多种模式?

一旦完成,如何从中提取值?

附言:如果有人需要我在用C#编程。

10倍!

请您参考如下方法:

您可以尝试以下方法:

  string input = @" <name>AAA</name> 
                                <id>1234</id> 
                                <gender>M</gender>"; 
          string pattern = @"<name>(?<name>.+)</name> 
                                <id>(?<id>.+)</id> 
                                <gender>(?<gender>.+)</gender>"; 
          Match m = Regex.Match(input, pattern); 
          Console.WriteLine(m.Groups["name"]); 
          Console.WriteLine(m.Groups["id"]); 
          Console.WriteLine(m.Groups["gender"]);