C# 获取两个单词C之间的最短字符串#
我想得到两个给定单词之间的最短字符串。我可以得到两个单词之间的字符串,但如果同一个单词出现两次,就会出现问题 句子:与其他人一起工作的人在这里 我想得到最后一批人和之间的字符串。 这是我目前使用的方法:C# 获取两个单词C之间的最短字符串#,c#,string,substring,C#,String,Substring,我想得到两个给定单词之间的最短字符串。我可以得到两个单词之间的字符串,但如果同一个单词出现两次,就会出现问题 句子:与其他人一起工作的人在这里 我想得到最后一批人和之间的字符串。 这是我目前使用的方法: private static string Between(this string value, string a, string b) { int posA = value.IndexOf(a); int posB = value.LastIndexOf(b); if
private static string Between(this string value, string a, string b)
{
int posA = value.IndexOf(a);
int posB = value.LastIndexOf(b);
if (posA == -1)
{
return "";
}
if (posB == -1)
{
return "";
}
int adjustedPosA = posA + a.Length;
if (adjustedPosA >= posB)
{
return "";
}
return value.Substring(adjustedPosA, posB - adjustedPosA);
}
如果没有重复,此功能将起作用。但在这个例子中,它返回了第一个人和这里之间的所有字符串。我怎样才能得到最后一个人和这里之间的结果?我期望的结果是在查找两个单词时使用
LastIndexOf
,以便始终找到该单词最后出现的位置
int posA = value.LastIndexOf(a);
int posB = value.LastIndexOf(b);
然而:这可能不会为“与其他人一起工作的人”产生你想要的东西。请澄清你的要求
在使用正则表达式的其他解决方案在查找两个单词时使用LastIndexOf,以便始终找到该单词的最后一次出现
int posA = value.LastIndexOf(a);
int posB = value.LastIndexOf(b);
然而:这可能不会为“与其他人一起工作的人”产生你想要的东西。请澄清你的要求
在处使用正则表达式的其他解决方案您的问题与其标题不匹配。“两个最短单词之间的字符串”和“两个单词之间的最短字符串”是完全不同的东西。
这个句子中的、谁
和和最短单词不是吗?@diligentkeypress,问题更新了。对不起,我的英语不好。@DeanOC,对不起,我的英语不好。问题现在已更新。您的问题与其标题不匹配。“两个最短单词之间的字符串”和“两个单词之间的最短字符串”是完全不同的东西。这个句子中的、谁
和和最短单词不是吗?@diligentkeypress,问题更新了。对不起,我的英语不好。@DeanOC,对不起,我的英语不好。问题现已更新。