匹配模式后从字符串切割文本

时间:2014-02-15 14:32:48

标签: c# regex winforms match

我想在< .br>之后剪切所有文字在下一个< .br>之前在最后一个< .br>之后,例如:

string example1 = "some example<br>text1<br>text2";
//do the magic
int match_count = 2;
string match1 = "text1";
string match2 = "text2";

如果没有显示实际的例子,很难解释这一点;)

有一种简单的方法可以使用正则表达式完成此操作吗?

P.S。更多用法示例:

string example1 = "some example<br>text1";
int match_count = 1;
string match1 = "text1";

string example2 = "some example";
int match_count = 0;

2 个答案:

答案 0 :(得分:0)

一种不需要定期表达的可能性是使用String.Split重载之一:

var input = @"some example<br>text1<br>text2";
// split on every <br>
var chunks = input.Split(new[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries);
// remove the first entry, everything else is wanted result
foreach (var chunk in chunks.Skip(1))
{
    Console.WriteLine(chunk);
}

输出结果为:

text1
text2

然后,您可以使用阵列上的CountLength轻松检查是否有任何匹配。

答案 1 :(得分:0)

对于match_count,您只能使用String.Split方法;

string example1 = "some example<br>text1<br>text2";
int match_count = example1.Split(new[] { "<br>" }, 
                                 StringSplitOptions.RemoveEmptyEntries
                                .Count() - 1;

要在标签之间获取文字,请查看此问题;

它在vb.net中,但您可以轻松地将其转换为c#。