如何拆分文本文件,其中我有不同长度的句子,我想在单击我的表单上的button1时读取文本文件并从该文本文件中提取开头到结尾之间的文字'
字符的@
字符,在#
字符的开头和结尾包含'
符号或abc'123'@def'456''@ghi'
abc'123'@def'#456''@ghi'123456'
符号,我想知道它在哪一行并将字输出到文本文件。
示例,假设我有一个像
这样的文本1st sentence @ghi
2nd sentence #456 @ghi
输出:
@def
PS :'
不在{{1}}字符的开头和结尾,因此不在输出中
我与分裂功能联系但无法成功并变成了大众:(我怎么能做到这一点。如果有人知道帮助,我会很高兴。
感谢。
答案 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));
}
}
}