Split camelCase/PascalCase (using multiple regex matches)

CSharp · Console

/Program.cs

using System;
using System.Linq;
using System.Text.RegularExpressions;

public class Program
{
	static string CamelCaseToSpaceSeparated(string text) 
	{
		string[] words = Regex.Matches(text, @"([A-Z]+(?![a-z])|[A-Z][a-z]+|[0-9]+|[a-z]+)")
			.OfType<Match>()
			.Select(m => m.Value)
			.ToArray();
		return string.Join(" ", words);
	}
	
	public static void Main()
	{
		Console.WriteLine(CamelCaseToSpaceSeparated("MyHTTPServer"));
		Console.WriteLine(CamelCaseToSpaceSeparated("XMLReaderFactory"));
		Console.WriteLine(CamelCaseToSpaceSeparated("_myNewUIControl"));
		Console.WriteLine(CamelCaseToSpaceSeparated("readInt32_silent"));
		Console.WriteLine(CamelCaseToSpaceSeparated("_12DaysLater"));
		Console.WriteLine(CamelCaseToSpaceSeparated("IMG_ButtonIcon_16px"));
		Console.WriteLine(CamelCaseToSpaceSeparated("PrintButton_MouseOver"));
		Console.WriteLine(CamelCaseToSpaceSeparated("int32_45_78Stuff"));
	}
}
;