using System.Collections.Generic;
using System.Diagnostics;
IEnumerable<char> GetCharsFromAscii(int start, int count)
return Enumerable.Range(start, count).Select(x => (char)x);
IEnumerable<char> GetSpaceAndPunctuactionMarks()
var punctuactionMarks = new List<char>();
var ranges = new List<(int Start, int Count)> { (32, 16), (58, 7), (91, 6), (123, 4) };
ranges.ForEach(range => punctuactionMarks.AddRange(GetCharsFromAscii(range.Start, range.Count)));
return punctuactionMarks;
string CreateSearchPhrase(string oldPhrase)
var time = new Stopwatch();
var separators = GetSpaceAndPunctuactionMarks().ToArray();
var words = oldPhrase.Split(separators).Where(word => word != "");
var newPhrase = string.Join(" ", words);
Console.WriteLine(time.Elapsed);
return string.Join("", "*", newPhrase, "*");
Console.WriteLine(CreateSearchPhrase("asdf ! asdf asdfasdf asdfasdf asdfasdf sadfasdf !asdf -+asdf ! asdf asdfasdf asdfasdf asdfasdf sadfasdf !asdf -+"));