diff --git a/src/DotnetDocument/Extensions/StringExtensions.cs b/src/DotnetDocument/Extensions/StringExtensions.cs index ea5bc58..73df7c8 100644 --- a/src/DotnetDocument/Extensions/StringExtensions.cs +++ b/src/DotnetDocument/Extensions/StringExtensions.cs @@ -27,7 +27,8 @@ public static string SubstringBetween(this string text, string start, string end var endIndex = text.IndexOf(end, StringComparison.Ordinal); if (text.Contains(start) && text.Contains(end) && startIndex < endIndex) - return text.Substring(startIndex + start.Length, endIndex - end.Length - startIndex); + return text.Substring(startIndex + start.Length, + endIndex - startIndex - start.Length); return string.Empty; } diff --git a/test/DotnetDocument.Tests/StringExtensionsTests.cs b/test/DotnetDocument.Tests/StringExtensionsTests.cs index 575f820..c504251 100644 --- a/test/DotnetDocument.Tests/StringExtensionsTests.cs +++ b/test/DotnetDocument.Tests/StringExtensionsTests.cs @@ -27,5 +27,17 @@ public void ShouldOnlySubstringDoubleTriangleBrackets(string text, string expect substring.ShouldBe(expected); } + [Fact] + public void ShouldSubstringWithDifferentTokenLengths() + { + const string text = "This is in text."; + + // Act + var substring = text.SubstringBetween(""); + + // Assert + substring.ShouldBe("some comment"); + } + } }