在同一个链接问题中,您有一个适用于所有字符串的更灵活的答案,在此处修改:
public string GetStringBetweenStrings(string source, string leftString, string rightString)
{
int start = source.IndexOf(leftString); // assume != -1
int end = source.IndexOf(rightString); // assume != -1 and >= start
if (start == -1 || end == -1 || end < start) return String.Empty;
return source.Substring(start + leftString.Length, end - start - rightString.Length - 1)
}
这假定两个字符串都包含在源字符串中。如果任何一个都不是,你想要什么行为?或者如果开始是在结束之后?
根据@Jack 的强制性正则表达式版本,但已更新为功能:
public string GetStringBetweenStrings(string source, string leftString, string rightString)
{
return Regex.Match(source, String.Format(@"(?<={0})(.*)(?={1})",
Regex.Escape(leftString),
Regex.Escape(rightString)))
.Captures[0].Value;
}