2014-06-10 40 views
-4

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

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

样品字符串:

┐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

你已经提出了一个要求,但不是一个问题。 –

+1

使用分割('┐'),我猜? – apomene

+2

@GrantWinney:他不想将两个字符分开,而是将两个字符分开。 –

回答

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└ 
+0

你好,检查我的代码以及评论 –

+0

感谢您的回应,你能帮我吗?这是我的代码:Data = Port1.ReadExisting(); display.Invoke(new Action(()=> display.AppendText(Data);})); com.CommandText =“insert into RawData(datetime,data)values('”+ DateTime.Now.ToString()+“','”+ Data +“')”; com.ExecuteNonQuery();问题是数据是作为一个系列出现的,我需要做的是分割数据,如┐11.265820.0088└ – user3725798

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('┐'); 
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└ 
+0

感谢您的回应,您能帮我解答吗?
这是我的代码:
Data = Port1.ReadExisting();
显示。Invoke(new Action(()=>
{
display.AppendText(Data);
}));
com.CommandText =“insert into RawData(datetime,data)values('”+ DateTime.Now.ToString()+“','”+ Data +“')”;
com.ExecuteNonQuery();

问题是数据作为系列出现,我需要做的是拆分数据,如┐11.265820.0088└ – user3725798

+0

抱歉不了解您的查询 –

+0

我可以让你的Skype或电子邮件? – user3725798

0

Try:yourString.Split('└'),然后将└添加到返回数组的每个元素,因为您将使用Split拆分它们。

+0

它不包含分隔符:( –

相关问题