我想用某种方式在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
答案 0 :(得分:6)
使用String.Replace()
没有“通配符”解决方案。最好的办法是使用regular expression和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();
}
答案 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;”并在标记之间提取字符串以替换或直接从标记之前和之后提取文本。
也许还有一种方法可以使用正则表达式。