0

この文字列(巨大)があり、探しているもの以外をすべて除外したいとしましょう。これが私が欲しいものの例です:

<strong>You</strong></font> <font size="3" color="#05ABF8">
<strong>Shook</strong></font> Me All <font size="3" color="#05ABF8">
<strong>Night</strong></font> <font size="3" color="#05ABF8">
<strong>Long</strong></font> mp3</a></div>

ご覧のとおり、その間にテキストがあります。「You Shook Me All Night Long」を手に入れて残りを出したい。これを達成するにはどうすればよいですか?

4

2 に答える 2

3

次の正規表現を使用できます。>([\s|\w]+)<

var input = @"
<strong>You</strong></font> <font size='3' color='#05ABF8'>
<strong>Shook</strong></font> Me All <font size='3' color='#05ABF8'>
<strong>Night</strong></font> <font size='3' color='#05ABF8'>
<strong>Long</strong></font> mp3</a></div>";

var regex = new Regex(@">(?<match>[\s|\w]+)<");

var matches = regex.Matches(input).Cast<Match>()
   // Get only the values from the group 'match'
   // So, we ignore '<' and '>' characters
   .Select(p => p.Groups["match"].Value);

マッチ

// Concatenate the captures to one string
var result = string.Join(string.Empty, matches)
    // Remove unnecessary carriage return characters if needed
    .Replace("\r\n", string.Empty);

結果

于 2012-10-28T03:11:32.293 に答える
1

</a></div>投稿した xml/html の末尾に有効な開始タグがあると仮定します。

string value = XElement.Parse(string.Format("<root>{0}</root>", yourstring)).Value;

または、Html を削除するメソッド:

public static string StripHTML(this string HTMLText)
{
    var reg = new Regex("<[^>]+>", RegexOptions.IgnoreCase);
    return reg.Replace(HTMLText, "").Replace("&nbsp;", " ");
}
于 2012-10-28T02:40:52.633 に答える