5

私は文字列を持っていますstr="<u>rag</u>""rag"今、私は文字列だけを取得したい。正規表現を使用して取得するにはどうすればよいですか?

私のコードはここにあります..

output="" を取得しました

前もって感謝します..

C# コード:

string input="<u>ragu</u>";
string regex = "(\\<.*\\>)";
string output = Regex.Replace(input, regex, "");
4

5 に答える 5

4

regexhtml の解析に使用することはお勧めしません

regex定期的に発生するパターンに使用されます。htmlはその形式で規則的ではありません ( を除くxhtml)。たとえば、ファイルは !がなくhtmlも有効です。closing tag

htmlagilitypackのような html パーサーを使用する


WARNING {コードでこれを試さないでください}

正規表現の問題を解決するには!

<.*>最後まで<0 から多くの文字 (つまりu>rag</u)が続きます >

この正規表現に置き換える必要があります

<.*?>

.*貪欲です。つまり、一致する文字をできるだけ多く食べます。

.*?怠け者です。つまり、できるだけ少ない文字を食べます

于 2013-04-10T12:19:56.407 に答える
0

できますよ:

   string input = "<u>ragu</u>";
    string regex = "(\\<[/]?[a-z]\\>)";
    string output = Regex.Replace(input, regex, "");
于 2013-04-10T12:16:59.947 に答える
0

そのために正規表現を使用する必要はありません。

string input = "<u>rag</u>".Replace("<u>", "").Replace("</u>", "");
Console.WriteLine(input);
于 2013-04-10T12:17:25.483 に答える
0

あなたのコードはほぼ正しかったので、少し修正するだけで動作します:

 string input = "<u>ragu</u>";
 string regex = @"<.*?\>";
 string output = Regex.Replace(input, regex, string.empty);

出力は「ragu」です。

編集:この解決策は最善ではないかもしれません。ユーザー the-land-of-devils-srilanka からの興味深い発言: HTML の解析に正規表現を使用しないでください。実際、RegEx match open tags except XHTML self-contained tagsも参照してください。

于 2013-04-10T12:18:07.140 に答える