如果我有像
这样的字符串“这是一个将被此拆分的字符串”
我想将拆分结果作为
1和2由“this”分开 3和4分为“那个”
我的解决方案是使用字符串映射到字符串并将结果存储在相同类型字符串到字符串的另一个映射中。但是,对于更复杂和更长的文本,存储在地图中的结果会重复出现,即在上面的1和3中重复出现子串“是一个字符串”,这种冗余会产生错误的统计结果。
请您提供一个更好的解决方案来使用不同长字符串的分隔符来标记长字符串吗?
答案 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);