使用字符串分隔对字符串进行标记

时间:2011-07-23 21:19:10

标签: c# c++ c winapi

如果我有像

这样的字符串
  

“这是一个将被此拆分的字符串”

我想将拆分结果作为

  1. “是一个将被”
  2. 拆分的字符串
  3. “和那个”
  4. “这是一个字符串”
  5. “将由此分开”
  6. 1和2由“this”分开 3和4分为“那个”

    我的解决方案是使用字符串映射到字符串并将结果存储在相同类型字符串到字符串的另一个映射中。但是,对于更复杂和更长的文本,存储在地图中的结果会重复出现,即在上面的1和3中重复出现子串“是一个字符串”,这种冗余会产生错误的统计结果。

    请您提供一个更好的解决方案来使用不同长字符串的分隔符来标记长字符串吗?

1 个答案:

答案 0 :(得分:9)

string myString = "This is a string that will be splitted by this and that";
string foo = myString.ToUpper();

string[] byThis = foo.Split(new string[] { "THIS" }, StringSplitOptions.RemoveEmptyEntries);
string[] byThat = foo.Split(new string[] { "THAT" }, StringSplitOptions.RemoveEmptyEntries);

string[] all = foo.Split(new string[] { "THAT", "THIS" }, StringSplitOptions.RemoveEmptyEntries);

或者您可以使用正则表达式

string[] all = System.Text.RegularExpressions.Regex.Split(myString, "your pattern", System.Text.RegularExpressions.RegexOptions.IgnoreCase);