私は文字列を持っていますstr="<u>rag</u>"
。"rag"
今、私は文字列だけを取得したい。正規表現を使用して取得するにはどうすればよいですか?
私のコードはここにあります..
output="" を取得しました
前もって感謝します..
C# コード:
string input="<u>ragu</u>";
string regex = "(\\<.*\\>)";
string output = Regex.Replace(input, regex, "");
regex
html の解析に使用することはお勧めしません
regex
定期的に発生するパターンに使用されます。html
はその形式で規則的ではありません ( を除くxhtml
)。たとえば、ファイルは !がなくてhtml
も有効です。closing tag
htmlagilitypackのような html パーサーを使用する
WARNING {コードでこれを試さないでください}
正規表現の問題を解決するには!
<.*>
最後まで<
0 から多くの文字 (つまりu>rag</u
)が続きます >
この正規表現に置き換える必要があります
<.*?>
.*
貪欲です。つまり、一致する文字をできるだけ多く食べます。
.*?
怠け者です。つまり、できるだけ少ない文字を食べます
できますよ:
string input = "<u>ragu</u>";
string regex = "(\\<[/]?[a-z]\\>)";
string output = Regex.Replace(input, regex, "");
そのために正規表現を使用する必要はありません。
string input = "<u>rag</u>".Replace("<u>", "").Replace("</u>", "");
Console.WriteLine(input);
あなたのコードはほぼ正しかったので、少し修正するだけで動作します:
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も参照してください。