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+>この場合のパターンは、<後に1つ以上の単語文字が続き、その後に。が続くことを意味し>ます。要件に応じて、より複雑なパターンを使用できます。

于 2012-12-23T18:27:34.723 に答える
0

このワイルドカードを使用して正規表現を作成することをお勧めします。

お役に立てれば!

于 2012-12-23T18:45:49.493 に答える
-1

または、タグをサブ文字列として抽出し、取得した文字列で置換を使用することもできます。

擬似コード:

"<" then of ">"の出現箇所を見つけ、タグ間の文字列を抽出して、タグが本質的に削除する前後のテキストを置き換えるか、直接抽出します。

おそらく、正規表現を使用してこれを行う方法もあります。

于 2012-12-23T18:21:57.850 に答える