在C#中的两个字符之间拆分字符串

时间:2014-06-10 11:38:02

标签: c# split

如何在两个字符之间拆分字符串?

我需要在所有出现的'┐'之间拆分一个字符串。和'└'。

示例字符串:

┐1  1.26582  0.0088└┐1  1.26682  0.0093└┐1  1.26922  0.0089└┐1  1.27172  0.0084└

必填格式:

┐1  1.26582  0.0088└
┐1  1.26682  0.0093└
┐1  1.26922  0.0089└
┐1  1.27172  0.0084└

4 个答案:

答案 0 :(得分:2)

尝试过&测试

string input = "┐1 1.26582 0.0088└┐1 1.26682 0.0093└┐1 1.26922 0.0089└┐1 1.27172 0.0084└";
string[] substrings = Regex.Split(input, @"(?<=[└])");

<强>输出

┐1 1.26582 0.0088└ 

┐1 1.26682 0.0093└

┐1 1.26922 0.0089└

┐1 1.27172 0.0084└

答案 1 :(得分:1)

使用正则表达式:

Regex regex = new Regex("┐(.*?)└");
var matches = regex.Matches("┐1 1.26582 0.0088└┐1 1.26682 0.0093└┐1 1.26922 0.0089└┐1 1.27172 0.0084└");
foreach (Match match in matches)
    Console.WriteLine(match.Value);

结果:

┐1 1.26582 0.0088└ 
┐1 1.26682 0.0093└
┐1 1.26922 0.0089└
┐1 1.27172 0.0084└

答案 2 :(得分:0)

尽管问题很少,我确实认为如何在字符之间而不是在它们之间拆分的问题至少有点有趣。

可以使用正则表达式轻松完成,但只需使用C#,一个快速而简洁的LINQ模式将是:

public static string[] SplitAfter(this string str, char splitter)
{
    return str.Split(splitter).Skip(1).Select(s => splitter + s).ToArray();
}

所以按顺序:

  • 分裂角色
  • 在第一个角色实例
  • 之前删除空结果
  • 添加回Split
  • 删除的拆分器字符

在OP的情况下,这将被称为:

var result = "┐1 1.26582 0.0088└┐1 1.26682 0.0093└┐1 1.26922 0.0089└┐1 1.27172 0.0084└".SplitAfter('┐');

答案 3 :(得分:0)

尝试:yourString.Split('└'),然后将└添加到返回数组的每个元素,因为你将使用Split丢失它们。