假设我有这个字符串(巨大的),我想过滤除了我正在寻找的所有东西。这是我想要的一个例子:
<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>
正如你所看到的,所有这些之间都有文字。我想得到“你彻夜狂笑我”并取出其余部分。我将如何完成这项工作?
答案 0 :(得分: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);
答案 1 :(得分:1)
假设您在发布的xml / html末尾有结尾</a></div>
的有效开始标记。
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(" ", " ");
}