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); }
/// <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); } } }