0
与えられた2つの単語の間に最短の文字列を入れたい。私は2つの単語の間に文字列を得ることができますが、同じ単語が2回あると問題が発生します。2つの単語間の最短文字列を取得するC#
文章:人他人と一緒に働いていた人人はこちらです。
最後の文字列を人とここにの間で取得したいと思います。 これは私が現在使用している方法である:
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);
}
何の繰り返しがない場合、この機能は動作します。しかし、この例では、最初の人々とここの間のすべての文字列を返します。最後の人とここで結果をどうやって得ることができますか?私が期待している結果ははです。
であなたの質問を正規表現を使用して、あなたの要件
その他のソリューションを明確にしてください。 「2つの短い単語の間の文字列」と「2つの単語の間の最短の文字列」は全く異なるものです。 –
'the'、' who'と 'and'は文中で最短の単語ではありませんか? – DeanOC
@DiligentKeyPresser、質問が更新されました。私の悪い英語を申し訳ありません。 –