我需要这个HTML字符串

时间:2015-12-01 19:42:00

标签: c# regex

我在Regex上并不是很聪明,还在学习如何利用它,我真的很感激一些帮助。

我有一个这样的字符串:

"Language<option value='32'>Bahasa Indonesia<option value='19'>Dansk<option value='4'>Deutsch<option value='1'>English<option value='2'></option></option></option></option>"

我需要将其转换为可以使用的内容,例如:

public class CVModel
{
    public string value;
    public string content;
}

如何使用Regex提取此信息?我知道我可以使用

"<.*?>"

去掉选项标签用分隔符替换它们,我可以用它来分割成一个列表。但是我如何提取&#34;值&#34;属性?在期待中感谢!

1 个答案:

答案 0 :(得分:0)

这只是一个适合您的示例字符串的简单正则表达式。它没有尝试考虑您可以使用HTML执行的所有操作,例如在选项标记上添加其他属性,或非数字值等,但它快速且有效:

var regex=@"<option value='(?<value>\d+)'>(?<content>[^<]*)";
var search=@"Language<option value='32'>Bahasa Indonesia<option value='19'>Dansk<option value='4'>Deutsch<option value='1'>English<option value='2'></option></option></option></option>";
var list=System.Text.RegularExpressions.Regex
  .Matches(search,regex)
  .Cast<Match>()
  .Select(match => new { 
    Value=match.Groups["value"].Value, 
    Content=match.Groups["content"].Value});

输出: enter image description here

您的HTML选项不应该像这样嵌套。