0

我想要某种方式在 C# 中表达通配符这是我想使用通配符的代码,用于从我已经拥有的 xml 代码中删除标签

    public static String readfromnode(XNode x)
    {
        String before;
        before = x.ToString();
        before.Replace("<"the wild card should be here">", null);
        return before;
    }

我已经尝试过使用许多符号并将它们与它们相关联,@但没有一个效果很好。

例如输入是

**<head> <title>Benchmark 1</title> </head>**

输出是

基准 1

4

4 回答 4

6

没有使用String.Replace(). 您最好的选择是使用正则表达式Regex类,这正是正则表达式所针对的情况。

快速制作了一个如何做到这一点的示例。

static void Main(string[] args)
{
    string myString = "This is some <text with> some missplaced <tags in them> and we want to remove everything <between those tags>";
    myString = Regex.Replace(myString, "<.*?>", string.Empty);
    Console.WriteLine(myString);
    Console.ReadKey();
}
于 2012-12-23T18:26:38.817 回答
3

使用正则表达式可能会更好:

public static string ReadFromNode(XNode node)
{
    string before = node.ToString();

    string after = Regex.Replace(before, @"<\w+>", string.Empty);

    return after;
}

<\w+>在这种情况下,模式表示 a<后跟一个或多个单词字符,然后是>。您可以根据您的要求使用更复杂的模式。

于 2012-12-23T18:27:34.723 回答
0

我建议将此通配符用​​于正则表达式

希望这可以帮助!

于 2012-12-23T18:45:49.493 回答
-1

您也可以将标签提取为子字符串,并使用您获得的字符串替换。

伪代码:

查找“<”然后是“>”的出现,并提取标签之间的字符串以替换或直接从标签前后提取文本,基本上将其删除。

也许还有一种方法可以使用正则表达式来做到这一点。

于 2012-12-23T18:21:57.850 回答