주어진 두 단어 사이에서 가장 짧은 문자열을 얻고 싶습니다. 두 단어 사이의 문자열을 얻을 수 있지만 같은 단어가 두 번 있으면 문제가 발생합니다.
문장 다음 사람들이 서로 작업하는 사람들이 여기에 있습니다.
나는 마지막 사람들 과 여기 사이의 끈을 얻고 싶다 . 이것은 현재 사용중인 방법입니다.
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);
그러나 이것은 "여기서 다른 사람들과 함께 일하는 사람들"에 대해 원하는 것을 생성하지 못할 수도 있습니다. 귀하의 요구 사항을 명확히하십시오
https://stackoverflow.com/a/35105389/101087 에서 정규식을 사용하는 다른 솔루션
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다