首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将分隔符保留在结果末尾的字符串拆分?

如何将分隔符保留在结果末尾的字符串拆分?
EN

Stack Overflow用户
提问于 2012-03-20 13:38:45
回答 5查看 5.1K关注 0票数 2

我有几个分隔符。例如{del1,del2,del3 }。假设我有文本: Text1 del1 text2 del2 text3 del3

我想用这样的方式分割字符串:

  1. Text1 del1
  2. text2 del2
  3. text3 del3

当数组中的每个元素都是texti deli时,我需要得到字符串数组。我如何在C#中做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-20 13:45:44

String.Split允许多个分离器.我不知道这是否符合你的问题。

例子:

代码语言:javascript
复制
    String text = "Test;Test1:Test2#Test3";
    var split = text.Split(';', ':', '#');
   //split contains an array of "Test", "Test1", "Test2", "Test3"

编辑:您可以使用regex来保存数据。

代码语言:javascript
复制
 String text = "Test;Test1:Test2#Test3";
 var split = Regex.Split(text, @"(?<=[;:#])");
 // contains "Test;", "Test1:", "Test2#","Test3"
票数 8
EN

Stack Overflow用户

发布于 2012-03-20 13:47:16

这应该能起作用:

代码语言:javascript
复制
    const string input = "text1-text2;text3-text4-text5;text6--";
    const string matcher= "(-|;)";

    string[] substrings = Regex.Split(input, matcher); 

    StringBuilder builder = new StringBuilder();
    foreach (string entry in substrings)
    {
        builder.Append(entry);
    }

    Console.Out.WriteLine(builder.ToString());

请注意,您将在子字符串数组中接收两个‘-’s匹配的空字符串,在结尾时,您可以选择忽略这些值或使用这些值执行您喜欢的操作。

票数 2
EN

Stack Overflow用户

发布于 2012-03-20 13:44:32

如果要在拆分字符串时保留分隔符,可以使用以下方法:

代码语言:javascript
复制
string[] delimiters = { "del1", "del2", "del3" };

string input = "text1del1text2del2text3del3";
string[] parts = input.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);

for(int index = 0; index < parts.Length; index++)
{
    string part = parts[index];
    string temp = input.Substring(input.IndexOf(part) + part.Length);

    foreach (string delimter in delimiters)
    {
        if ( temp.IndexOf(delimter) == 0)
        {
            parts[index] += delimter;
            break;
        }
    }
}

然后,parts将是:

代码语言:javascript
复制
    [0] "text1del1" 
    [1] "text2del2" 
    [2] "text3del3" 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9787904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档