sample code:
var splitwords =new string[] {"egg","eggs", "have a receipt"};
string input ="I have a receipt with eggs but others with just one egg";
foreach (string word in splitwords)
{
var regex = new Regex(@"(?<![\w])" + word + @"(?![\w])", RegexOptions.IgnoreCase);
input = regex.Replace(input, m=>m.ToString().ToUpper());
}
replace only the matching items of regex then it should work fine.