protected ColRegExpExtractProcessingResult ScriptExtractRegExpValues(double documentID, string text, CSScriptManager scriptManager, int columnID) { ColRegExpExtractProcessingResult result = null; try { List <string> regExpList = new List <string>(); foreach (var regExp in _listRegExps.Where(x => x.ExtractOptions != null && x.ExtractOptions.Extract)) { regExpList.Add(regExp.Expression); } var returnValue = scriptManager.Run(text, regExpList); if (!String.IsNullOrEmpty(returnValue)) { result = new ColRegExpExtractProcessingResult { ColumnID = columnID, DocumentID = documentID, Value = returnValue }; } } catch (Exception ex) { Logger.HandleException(ex); } return(result); }
protected ColRegExpExtractProcessingResult ExtractRegExpValues(ColRegExp regExp, double documentID, string text) { ColRegExpExtractProcessingResult result = null; try { var matches = regExp.GetFilteredMatches(text); var matchValues = matches.Select(match => match.Value) .ToList(); if (matchValues.Any()) { var returnValue = String.Empty; switch (regExp.ExtractOptions.InstanceNo) { case 1: returnValue = matchValues[0]; break; case 2: returnValue = matchValues[matches.Count - 1]; break; case 3: returnValue = matchValues.ElementAtOrDefault(regExp.ExtractOptions.NthInstaceNumber.Value - 1); break; case 4: returnValue = matchValues.Count > 1 ? Newtonsoft.Json.JsonConvert.SerializeObject(matchValues.ToArray()) : matchValues.First(); break; } /////////////////////////////////////////////////////////////////////////////// if (!String.IsNullOrEmpty(returnValue)) { result = new ColRegExpExtractProcessingResult() { DocumentID = documentID, ColumnID = regExp.ColumnID, Value = returnValue, ExtractOptions = regExp.ExtractOptions }; } } } catch (Exception ex) { Logger.HandleException(ex); } return(result); }