C# 如何计算一个字符串在一个大字符串中的出现次数,并在第n次出现之前获取子字符串?
我有这样一个字符串: 这是来自维基百科的一句话-这是对 维基百科的访问者。该项目还有一篇百科全书文章 关于它自己,维基百科,还有一些关于有抱负的人的介绍 贡献者。有关如何向组织捐款的信息 运行Wikipedia的网站,请查看给予的方式。@#这句话来自 谷歌-这是对维基百科访问者的一般介绍。这个 该项目也有一篇关于自身、维基百科和维基百科的百科全书文章 为有抱负的贡献者做一些介绍。了解如何 若要向运行维基百科的组织捐款,请参阅“捐款方式”。 @##@这句话来自Facebook——这是一个概括性的介绍 对于维基百科的访问者。该项目还有一本百科全书 关于自己的文章,维基百科,以及一些有抱负的人的介绍 贡献者。有关如何向组织捐款的信息 运行Wikipedia的,请参阅提供方法@##@ 现在从上面的字符串中,我想计算模式“@##@”的出现次数。 在这之后,我想要子字符串,直到这个模式在字符串中第二次出现 在上面的例子中,我想要的结果是: Count=3 substring=“这是来自维基百科的一句话-这是一个 维基百科的一般介绍。该项目还包括 一篇关于它自己的百科全书文章,维基百科,还有一些 为有抱负的贡献者介绍。有关如何 向运行维基百科的组织捐款,请参阅捐款方式@##@ 这句话来自谷歌-这是对 维基百科的访问者。该项目还有一篇百科全书文章 关于它自己,维基百科,还有一些关于有抱负的人的介绍 捐款人。有关如何向组织捐款的信息 运行Wikipedia的网站,请参阅提供信息的方法。”C# 如何计算一个字符串在一个大字符串中的出现次数,并在第n次出现之前获取子字符串?,c#,regex,string,C#,Regex,String,我有这样一个字符串: 这是来自维基百科的一句话-这是对 维基百科的访问者。该项目还有一篇百科全书文章 关于它自己,维基百科,还有一些关于有抱负的人的介绍 贡献者。有关如何向组织捐款的信息 运行Wikipedia的网站,请查看给予的方式。@#这句话来自 谷歌-这是对维基百科访问者的一般介绍。这个 该项目也有一篇关于自身、维基百科和维基百科的百科全书文章 为有抱负的贡献者做一些介绍。了解如何 若要向运行维基百科的组织捐款,请参阅“捐款方式”。 @##@这句话来自Facebook——这是一个概括性的介
谁能告诉我怎么做。提前感谢。您想使用
拆分方法
public static Regex regex = new Regex(
"@##@",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.Compiled
);
string[] results = regex.Split(InputText);
您想使用拆分
方法
public static Regex regex = new Regex(
"@##@",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.Compiled
);
string[] results = regex.Split(InputText);
您想使用拆分
方法
public static Regex regex = new Regex(
"@##@",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.Compiled
);
string[] results = regex.Split(InputText);
您想使用拆分
方法
public static Regex regex = new Regex(
"@##@",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.Compiled
);
string[] results = regex.Split(InputText);
试试这个:
var splitted = text.Split(new[]{"@##@"}, StringSplitOptions.RemoveEmptyEntries);
var count = splitted.Count();
var result = string.Join("@##@", splitted.Take(2).ToArray());
计数将包含3,结果将包含所需的字符串
试试看试试这个:
var splitted = text.Split(new[]{"@##@"}, StringSplitOptions.RemoveEmptyEntries);
var count = splitted.Count();
var result = string.Join("@##@", splitted.Take(2).ToArray());
计数将包含3,结果将包含所需的字符串
试试看试试这个:
var splitted = text.Split(new[]{"@##@"}, StringSplitOptions.RemoveEmptyEntries);
var count = splitted.Count();
var result = string.Join("@##@", splitted.Take(2).ToArray());
计数将包含3,结果将包含所需的字符串
试试看试试这个:
var splitted = text.Split(new[]{"@##@"}, StringSplitOptions.RemoveEmptyEntries);
var count = splitted.Count();
var result = string.Join("@##@", splitted.Take(2).ToArray());
计数将包含3,结果将包含所需的字符串
试试它一种对大字符串更有效的拆分
方法的替代方法:
public static class StringExtensions
{
public static IEnumerable<int> AllIndexesOf(this string source, string substring)
{
int index = -1;
while ((index = source.IndexOf(substring, index + 1)) >= 0)
yield return index;
}
}
Split
方法的另一种方法在处理大型字符串时效率更高:
public static class StringExtensions
{
public static IEnumerable<int> AllIndexesOf(this string source, string substring)
{
int index = -1;
while ((index = source.IndexOf(substring, index + 1)) >= 0)
yield return index;
}
}
Split
方法的另一种方法在处理大型字符串时效率更高:
public static class StringExtensions
{
public static IEnumerable<int> AllIndexesOf(this string source, string substring)
{
int index = -1;
while ((index = source.IndexOf(substring, index + 1)) >= 0)
yield return index;
}
}
Split
方法的另一种方法在处理大型字符串时效率更高:
public static class StringExtensions
{
public static IEnumerable<int> AllIndexesOf(this string source, string substring)
{
int index = -1;
while ((index = source.IndexOf(substring, index + 1)) >= 0)
yield return index;
}
}