Basically you can replace the keyword @city with
\s+(?<city>[\S\s]+?)\s+
Example:
string template1 = @"^Tell me the forcast of\s+(?<city>[\S\s]+?)\s+for\s+(?<date>[\S\s]+)$";
In C# you use
Match m = Regex.Match("Tell me the forcast of Las Vegas for tomorrow", template1);
if (m.Success)
{
string city = m.Groups["city"].Value;
string date = m.Groups["date"].Value;
}
The rest you can do by yourself.
Here is some info about Regular Expressions
http://www.regular-expressions.info/[
^]