我想在< .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;
答案 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
然后,您可以使用阵列上的Count
或Length
轻松检查是否有任何匹配。
答案 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#。