我有一个段落,其中包含作者姓名:
Gopi,K.P。和Vijay,S。(1997)Computer Controlled Systems:Theory 和设计,第三版,Mc Graw-Hill,ND Cliffs,IND。
和另一个这样的段落:
这会导致数值上的困难(Gopi和Vijay,1997)。什么是 更多,当激活过程约束时,显着 闭环控制性能的恶化将会很明显 目睹一种非线性主导着控制系统 (Tenny,Rawlings和Wright,2004)。
那么如何将这两个段落与多个作者姓名(Gopi& vijay)与出版年份进行比较。
注意:在第一个参考部分中,所有具有年份信息的作者姓名的格式样式都是常量。
答案 0 :(得分:2)
“比较”(在这些字符串之间)提供了三种可能的结果:
“更大”,“更少”和“相同”的含义取决于比较函数。
你可能不想要“比较”。 “第二段小于第一段”甚至意味着什么? 您可能有兴趣了解文本中使用“计算机控制系统”的引用。 (如果正确引用了论文,应该做些微不足道的事情......)
如果这是你真正需要的,那么现在是时候弄清楚你作为一个人将如何处理这项任务。
我的第一种方法是采用参考字符串
string str = "Gopi, K.P., and Vijay, S. (1997) Computer Controlled Systems";
并查看其实际相关内容
string[] substrings = str.Split(new char[] { ' ', ',', '(', ')' });
引用这个“计算机控制系统”来源的段落很可能包含“Gopi和Vijay,1997”。
string toFind = substrings[0] + " and " + substrings[5] + ", " + substrings[9];
然后,我会在我最喜欢的文本查看器中打开文本并搜索“Gopi和Vijay,1997”。
string text = "It will cause numerical difficulty (Gopi and Vijay, 1997). What’s more, when the process constraints are activated, the significant deterioration of closed-loop control performance will be clearly witnessed as kind of nonlinearity is dominating the control system (Tenny, Rawlings, and Wright, 2004).";
int pos = text.IndexOf(toFind);
然后我会将比赛的位置和某个上下文存储在一起。
string match = "[...]" + text.Substring(Math.Max(pos - 50, 0), Math.Min(text.Length - pos, pos + toFind.Length + 50)) + "[...]";
然后,我会开始查看regex因为我会意识到可能有其他组合的“Gopi”,“Vijay”,“1997”以及可能在文本中使用的标点符号。 / p>