在文本文件中拆分文本

时间:2013-06-05 04:16:51

标签: c# string winforms

如何拆分文本文件,其中我有不同长度的句子,我想在单击我的表单上的button1时读取文本文件并从该文本文件中提取开头到结尾之间的文字'字符的@字符,在#字符的开头和结尾包含'符号或abc'123'@def'456''@ghi' abc'123'@def'#456''@ghi'123456' 符号,我想知道它在哪一行并将字输出到文本文件。

示例,假设我有一个像

这样的文本
1st sentence @ghi  
2nd sentence #456 @ghi

输出:

@def

PS '不在{{1}}字符的开头和结尾,因此不在输出中

我与分裂功能联系但无法成功并变成了大众:(我怎么能做到这一点。如果有人知道帮助,我会很高兴。

感谢。

4 个答案:

答案 0 :(得分:0)

此处输入字符串为s&字符串包含@#,第一个索引为str

    int start = s.indexOf("'");
    int end   = s.indexOf("'", start + 1);

    string str = s.SubString(start, end);

    if(str.ToCharArray()[0] == "@" || str.ToCharArray()[0] == "#")
        // proceed

答案 1 :(得分:0)

就这个例子而言,这里有一个可行的示例代码

      string sen1="abc'123'@def'456''@ghi'";
      string sen2 = "abc'123'@def'#456''@ghi'123456'";

      string[] NewSen = Regex.Split(sen1, "''");

      string YourFirstOP=NewSen[1].ToString(); //gets @ghi


      NewSen = Regex.Split(sen2, "''");

      string[] A1 = Regex.Split(NewSen[0], "'");
      string[] A2 = Regex.Split(NewSen[1], "'");


      string YourSecondOP= A1[A1.Length - 1] + "" + A2[A2.Length - 3].ToString();// gets #456 @ghi

但就是这个例子

希望这有帮助

答案 2 :(得分:0)

string [] Mass = s.Split('\'');
if (Mass.Length > 1)
    for (int i = 1; i < (Mass.Length - 1); i += 2)
    {
          if (Mass[i].Contains("@") || Mass[i].Contains("#"))
           // proceed
    }

答案 3 :(得分:0)

试试这个,

string testString = @"abc'123'@def'456''@ghi'abc'123'@def'#456''@ghi'123456'";
List<string> output = new List<string>();
int startIndex = 0;
int endIndex = 0;

while (startIndex >= 0 && endIndex >= 0)
{
    startIndex = testString.IndexOf("'", endIndex + 1);
    endIndex = testString.IndexOf("'", startIndex + 1);
    if (startIndex >= 0 && endIndex >= 0)
    {
        string str = testString.Substring(startIndex + 1, (endIndex - startIndex) - 1);                     
        int indexOfSpecialChar = str.IndexOf("@");
        if (indexOfSpecialChar < 0)
        {
            indexOfSpecialChar = str.IndexOf("#");
        }

        if (indexOfSpecialChar >= 0)
        {
            output.Add(str.Substring(indexOfSpecialChar));
        }
    }
}