拆分文本文件中的文本

本文关键字:文本 文件 拆分 | 更新日期: 2023-09-27 18:17:11

如何拆分一个文本文件,其中我有不同长度的句子,当我单击表单上的button1时,我想阅读文本文件,然后从该文本文件中提取单词,这些单词位于'字符的开头和结尾之间,并且在'字符的开头和结尾中包含@符号或#符号,我想知道哪个行是它输入并将单词输出到文本文件中。

例如,

假设我有一个文本,例如

abc'123'@def'456''@ghi'  
abc'123'@def'#456''@ghi'123456'

输出:

1st sentence @ghi  
2nd sentence #456 @ghi

PS@def不在'字符的开头和结尾,因此不在输出中

我用拆分功能绑在一起,但无法制作并变成了质量:(我怎么能做到这一点。如果知道的人帮忙,我会很高兴。

谢谢。

拆分文本文件中的文本

这里的输入字符串是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

就此示例而言,这里有一个有效的示例代码

      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

但这只是这个例子

希望这有帮助

试试这个,

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));
        }
    }
}
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
    }