public string Transform(string content)
 {
     if (IsDefault)
     {
         return(DefaultValue);
     }
     if (Type == ExtractType.SubString)
     {
         return(content.Substring(StartIndex, Length));
     }
     else
     {
         var m = ExtractPattern.Match(content);
         if (m.Success)
         {
             try
             {
                 if (string.IsNullOrEmpty(ResultPattern))
                 {
                     return(m.Groups[0].Value);
                 }
                 else
                 {
                     return(string.Format(ResultPattern, m.Groups.Cast <Group>().Skip(1).Select(g => g.Value as object).ToArray()));
                 }
             }
             catch (Exception e)
             {
                 throw new ArgumentException($"Could not extract {content} using {ResultPattern} due to {e.Message}");
             }
         }
     }
     return(null);
 }
        public bool CanTransform(string content)
        {
            if (IsDefault)
            {
                return(true);
            }

            return(!String.IsNullOrWhiteSpace(content) ? ExtractPattern.IsMatch(content) : false);
        }
Exemple #3
0
 /// <summary>
 /// 加载提取模式
 /// </summary>
 /// <param name="fileName"></param>
 private void LoadExtractPatterns(string fileName)
 {
     string[] lines = File.ReadAllLines(fileName, Encoding.UTF8);
     foreach (var line in lines)
     {
         if (line.Length > 0)
         {
             string[]       t       = line.Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries);
             ExtractPattern pattern =
                 new ExtractPattern(t[0], t[1]);
             _extractPatterns.Add(pattern);
         }
     }
 }
 public bool CanTransform(string content)
 {
     if (IsDefault)
     {
         return(true);
     }
     if (Type == ExtractType.SubString)
     {
         return(!String.IsNullOrWhiteSpace(content) ? content.Length > StartIndex && content.Length > (StartIndex + Length) : false);
     }
     else
     {
         return(!String.IsNullOrWhiteSpace(content) ? ExtractPattern.IsMatch(content) : false);
     }
 }
 /// <summary>
 /// 加载提取模式
 /// </summary>
 /// <param name="fileName"></param>
 private void LoadExtractPatterns(string fileName)
 {
     string[] lines = File.ReadAllLines(fileName, Encoding.UTF8);
     foreach (var line in lines)
     {
         if (line.Length > 0)
         {
             string[] t = line.Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries);
             ExtractPattern pattern =
                 new ExtractPattern(t[0], t[1]);
             _extractPatterns.Add(pattern);
         }
     }
 }