Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取两个单词C之间的最短字符串#_C#_String_Substring - Fatal编程技术网

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,对不起,我的英语不好。问题现已更新。