Changeset 16590 for branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser
- Timestamp:
- 02/06/19 14:37:02 (6 years ago)
- Location:
- branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser/IntervalConstraint.cs
r16587 r16590 7 7 namespace HeuristicLab.Problems.DataAnalysis { 8 8 public class IntervalConstraint { 9 public string Derivaiton { get; set; } 9 10 public string Definition { get; set; } 10 11 public Interval Interval { get; set; } -
branches/2971_named_intervals/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Parser/IntervalConstraintsParser.cs
r16587 r16590 1 1 using System; 2 2 using System.Collections.Generic; 3 using System.Globalization; 3 4 using System.IO; 4 5 using System.Linq; … … 14 15 public List<IntervalConstraint> Parse(string input) { 15 16 var options = RegexOptions.Multiline | RegexOptions.IgnoreCase; 16 var matches = Regex.Matches(input, @"^(.*)\bin\b\s*([\[\]])(.*[^\s])(\s*\.\.\s*)([^\s].*)([\[\]])\r? $", options);17 var matches = Regex.Matches(input, @"^(.*)\bin\b\s*([\[\]])(.*[^\s])(\s*\.\.\s*)([^\s].*)([\[\]])\r?\s*$", options); 17 18 18 19 for (var i = 0; i < matches.Count; ++i) { … … 22 23 var definition = Regex.Replace(matches[i].Groups[1].Value, @"\s *", ""); 23 24 if (Regex.IsMatch(definition, @"\/")) { 24 var splitted = Regex.Split(definition. ToLower().Replace(" ", string.Empty), @"\/");25 var splitted = Regex.Split(definition.Replace(" ", string.Empty), @"\/"); 25 26 var match = Regex.Match(splitted[0], @"([d∂])([0-9]|[²³])?(.*[^\s*])"); 26 27 if (match.Success) { … … 28 29 intervalConstraint.Definition = match.Groups[3].Value; 29 30 intervalConstraint.IsDerivation = true; 30 var formulation = Regex.Match(splitted[1], @"([d∂])(.*[^ \s*][^²³])([²³])?");31 var formulation = Regex.Match(splitted[1], @"([d∂])(.*[^²³])([²³])?"); 31 32 if (formulation.Success) { 32 33 intervalConstraint.Variable = formulation.Groups[2].Success ? formulation.Groups[2].Value : ""; … … 38 39 intervalConstraint.Definition = Regex.Match(definition, @".*[^.\s]*").Value; 39 40 intervalConstraint.IsDerivation = false; 40 } 41 } 42 intervalConstraint.Derivaiton = matches[i].Groups[0].Value; 41 43 intervalConstraint.InclusiveLowerBound = (matches[i].Groups[2].Value == "["); 42 44 intervalConstraint.InclusiveUpperBound = (matches[i].Groups[6].Value == "]"); … … 62 64 return double.NegativeInfinity; 63 65 default: { 64 if (double.TryParse(input, out var value)) {66 if (double.TryParse(input, NumberStyles.Any, CultureInfo.InvariantCulture, out var value)) { 65 67 return value; 66 68 } else {
Note: See TracChangeset
for help on using the changeset viewer.