“比较”(在这些字符串之间)提供三种可能的结果:
- 第一个字符串比第二个字符串“更大”
- 第一个字符串比第二个字符串“小于”
- 这两个字符串是“相同的”
“更大”、“更少”和“相同”的含义取决于比较函数。
您可能不想要“比较”。“第二段小于第一段”是什么意思?您可能有兴趣找出文中引用“计算机控制系统”的位置。(如果论文被正确引用,这应该是微不足道的事情......)
如果这是您真正需要的,那么是时候弄清楚作为人类的您将如何处理此任务。
我的第一种方法是采用参考字符串
string str = "Gopi, K.P., and Vijay, S. (1997) Computer Controlled Systems";
并查看其中实际相关的内容
string[] substrings = str.Split(new char[] { ' ', ',', '(', ')' });
引用此“计算机控制系统”来源的段落可能会在其中某处包含“Gopi and Vijay, 1997”。
string toFind = substrings[0] + " and " + substrings[5] + ", " + substrings[9];
然后,我会在我最喜欢的文本查看器中打开文本并搜索“Gopi and 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)) + "[...]";
然后,我会开始查看正则表达式,因为我会意识到文本中可能会使用“Gopi”、“Vijay”、“1997”和标点符号的其他组合。