C# 我有一大块文字。本文分为评论单位 文字看起来像这样(为了让我不浪费时间解释你能看到的东西)
MikeSmith randdesign第1章第1段 预订randdesign a :)对这本书的评论是徒劳的
Johnblack randdesign第1章第1段 预订randdesign 如果这本书保持开放有时,对这本书的评论是徒劳的 这些行可以是多条和长条评论
willsmith randdesign第1章第1段 预订randdesign a :)没有评论这本书是徒劳的
正如你可以看到这个文本块很有趣,因为我是一个初学者,我在编码方面的经验很少,我有c#3.0 cookbook,我正在尝试应用查找另一个字符串中所有出现的字符串的位置
我可以使用一些常量
我的问题如下
a :)是在另一个字符串中查找字符串的所有出现位置,这是查找数据开始和结束的最佳方法吗?
b :)有没有更快捷的方法可以从文本中删除数据?
c :)有时用户会引用另一个用户,如果我查找姓名,那么我可能会得到误报。我该如何处理?
感谢您的帮助
答案 0 :(得分:1)
a:是的,这很容易做到。假设您的文本块是一个巨大的字符串,并且该字符串被称为's',那么您可以按新行字符拆分文本,循环遍历每一行,并抓取注释,如下所示:
string s = @"
MikeSmith randdesign chapter 1 paragraph 1 book randdesign a:) comments on the book are futile
Johnblack randdesign chapter 1 paragraph 1 book randdesign a:) comments on the book are futile if the book is left open and sometimes these lines can be multiple and long comments
willsmith randdesign chapter 1 paragraph 1 book randdesign a:) no comments on the book are futile
";
foreach (string line in s.Split('\n'))
{
if (line.Trim() != "")
{
string comments = line.Substring(line.IndexOf("a:) ") + 4);
}
}
b:也许吧,但这对你来说非常快。
c:如果需要,尝试更改IndexOf()方法。如上所述,您可以定制它以查找任何内容,例如'b :)'和'c :)'。