Регулярные выражения. Переделать строку, сохранив значения - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д