c#字符串中的通配符

时间:2012-12-23 18:18:27

标签: c#

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

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

我已经尝试过使用多个符号并将它们与@相关联,但没有任何效果正常。

例如in put是

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

,输出

基准1

4 个答案:

答案 0 :(得分:6)

使用String.Replace()没有“通配符”解决方案。最好的办法是使用regular expressionRegex - 类,这是正则表达式的精确情况。

快速了解如何做到这一点。

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

答案 1 :(得分:3)

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

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

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

    return after;
}

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

答案 2 :(得分:0)

我建议使用此Wildcard to regexes

希望这有帮助!

答案 3 :(得分:-1)

您也可以将标记作为子字符串提取,并将Replace替换为您获得的字符串。

的伪代码:

查找“&lt;”的出现那么“&gt;”并在标记之间提取字符串以替换或直接从标记之前和之后提取文本。

也许还有一种方法可以使用正则表达式。