从字符串

时间:2016-02-18 16:28:03

标签: c# asp.net

我有一个像

这样的字符串
string str = "<abc> hello </abc> <abc> world </abc>"

Output in List/Array :
hello
world

现在,我想只提取<abc></abc>之间的文字。可以有n个abc标签。所以我只想要文本之间 我怎么能这样做。

我尝试过使用split,但它没有给出文本之间的内容。

2 个答案:

答案 0 :(得分:7)

您可以使用正则表达式(正则表达式),例如:

string str = "<abc> hello </abc> <abc> world </abc>";
string pattern = "<abc>(.*?)</abc>";

var matches = Regex.Matches(str, pattern);

var result = matches.Cast<Match>().Select(m => m.Groups[1].Value.Trim()).ToArray();

希望这有帮助。

答案 1 :(得分:0)

你可以按空格分割,然后过滤掉你不想要的两个表达式。 然后将您执行的操作添加到列表中。

List<String> list1 = new List<String>();
string str = "<abc> hello </abc> <abc> world </abc>";
string[] array = str.Split(' ');
foreach (string word in array)
{
    if (word != "<abc>" && word != "</abc>")
    {
        list1.Add(word);
    }
}