Reputation: 1789
Is there any inbuilt way in C# to split a text into an array of words and delimiters? What I want is:
text = "word1 + word2 - word3";
string[] words = text.Split(new char[] { '+', '-'});
//Need list '+', '-' here?
Any ideas? Obviously I can just process the text by hand... :)
Upvotes: 4
Views: 820
Reputation: 4550
Use Regex.split() with capturing parentheses http://msdn.microsoft.com/en-us/library/byy2946e.aspx
string input = @"07/14/2007";
string pattern = @"(-)|(/)";
foreach (string result in Regex.Split(input, pattern))
{
Console.WriteLine("'{0}'", result);
}
// In .NET 1.0 and 1.1, the method returns an array of
// 3 elements, as follows:
// '07'
// '14'
// '2007'
//
// In .NET 2.0, the method returns an array of
// 5 elements, as follows:
// '07'
// '/'
// '14'
// '/'
// '2007'
Upvotes: 9
Reputation: 55009
Not that I'm aware of, but I suppose you could do it with a regular expression. Just write it to pick up only your delimiters and then use Regex.Matches
and the collection that is returned should contain the delimiters. See here for more info including a short sample.
Upvotes: 0