1

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

例如,假设我有这样的文字

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

输出:

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

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

我绑定了拆分功能,但无法实现并变成质量:(我该怎么做。如果知道的人提供帮助,我会很高兴。

谢谢。

4

4 回答 4

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
    }
于 2013-06-05T05:27:29.733 回答
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

但这只是这个例子

希望这可以帮助

于 2013-06-05T05:13:27.570 回答
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));
        }
    }
}
于 2013-06-05T05:36:34.363 回答
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
于 2013-06-05T05:07:34.230 回答