Регулярные выражения. Переделать строку, сохранив значения - C#
Формулировка задачи:
Листинг программы
- var buyMatches = Regex.Matches(buyCond, @"tf(\d+)\(Price(>|<|>=|<=|==)Prices(\d+)\.\.(\d+)(?:(\+|-)(PriceFilter\d+))?\)");
- foreach (Match match in buyMatches)
- {
- Regex.Replace(buyCond, match.Value, ComparePrevCandlesTails(первое вхождение, второе, третье, четвертое,пятое + шестое).ToString());
- }
Решение задачи: «Регулярные выражения. Переделать строку, сохранив значения»
textual
Листинг программы
- string str = @"tf1(Price>Highs1..10-filter1)";
- Dictionary<string, string> LogicalOperators = new Dictionary<string, string>()
- {
- {">", "greater_than"},
- {"<", "less_than"},
- {">=", "greater_than_or_equal_to"},
- {"<=", "less_than_or_equal_to"},
- {"==", "equal"},
- };
- str = Regex.Replace(str,
- @"tf(?<firstNum>\d+)[^><=]+(?<LogicalOperator>[><=]=?)(?<TailsType>[^\d]+)(?<fromNum>\d+)\.\.(?<toNum>\d+)(?<filter>[^)]+)",
- match =>
- {
- return String.Format(@"compare({0}, LogicalOperators.{1}, TailsTypes.{2}, {3}, {4}, {5}",
- match.Groups["firstNum"].Value,
- LogicalOperators[match.Groups["LogicalOperator"].Value],
- match.Groups["TailsType"].Value,
- match.Groups["fromNum"].Value,
- match.Groups["toNum"].Value,
- match.Groups["filter"].Value);
- });
- Console.WriteLine(str);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д