diff --git a/src/Tingle.Extensions.Primitives/Extensions/StringProtectionExtensions.cs b/src/Tingle.Extensions.Primitives/Extensions/StringProtectionExtensions.cs
index a6487a4..b53c732 100644
--- a/src/Tingle.Extensions.Primitives/Extensions/StringProtectionExtensions.cs
+++ b/src/Tingle.Extensions.Primitives/Extensions/StringProtectionExtensions.cs
@@ -21,7 +21,7 @@ public enum StringProtectionPosition
End,
}
-/// Extension methods for .
+/// Extension methods for for protection.
public static partial class StringProtectionExtensions
{
///
diff --git a/src/Tingle.Extensions.Primitives/Extensions/StringSplitExtensions.cs b/src/Tingle.Extensions.Primitives/Extensions/StringSplitExtensions.cs
new file mode 100644
index 0000000..58efb41
--- /dev/null
+++ b/src/Tingle.Extensions.Primitives/Extensions/StringSplitExtensions.cs
@@ -0,0 +1,23 @@
+using System.Text.RegularExpressions;
+
+namespace System;
+
+/// Extension methods for for splitting.
+public static partial class StringSplitExtensions
+{
+ ///
+ /// Split a string in Pascal casing into multiple words by adding the specified .
+ ///
+ ///
+ ///
+ ///
+ public static string PascalSplit(this string source, string separator = " ")
+ {
+ ArgumentNullException.ThrowIfNull(source);
+
+ return GetPascalSplitFormat().Replace(source, separator);
+ }
+
+ [GeneratedRegex(@"(?<=[A-Za-z])(?=[A-Z][a-z])|(?<=[a-z0-9])(?=[0-9]?[A-Z])")]
+ private static partial Regex GetPascalSplitFormat();
+}
diff --git a/tests/Tingle.Extensions.Primitives.Tests/Extensions/StringSplitExtensionsTests.cs b/tests/Tingle.Extensions.Primitives.Tests/Extensions/StringSplitExtensionsTests.cs
new file mode 100644
index 0000000..12b4fbb
--- /dev/null
+++ b/tests/Tingle.Extensions.Primitives.Tests/Extensions/StringSplitExtensionsTests.cs
@@ -0,0 +1,14 @@
+namespace Tingle.Extensions.Modeling.Tests;
+
+public class StringSplitExtensionsTests
+{
+ [Theory]
+ [InlineData("HomeAndAway", " ", "Home And Away")]
+ [InlineData("HomeAndAway", "_", "Home_And_Away")]
+ [InlineData("Chickensoup", " ", "Chickensoup")]
+ public void PascalSplit_works(string original, string separator, string expected)
+ {
+ var actual = original.PascalSplit(separator);
+ Assert.Equal(expected, actual);
+ }
+}