Пример #1
0
        private List <ISearchResult> FindAllMatches(string text, int offset, int length, SearchContext context, bool returnFirst)
        {
            var res       = new List <ISearchResult>();
            var endOffset = offset + length;

            return(SearchUsingRegex(offset, returnFirst, text, endOffset, res, context));
        }
Пример #2
0
 private List <ISearchResult> SearchUsingRegex(int offset, bool returnFirst, string text, int endOffset, List <ISearchResult> res, SearchContext context)
 {
     foreach (Match result in _searchPattern.Matches(text))
     {
         if (context.IsCanceled)
         {
             return(null);
         }
         var resultEndOffset = result.Length + result.Index;
         if (offset > result.Index || endOffset < resultEndOffset)
         {
             continue;
         }
         //if (_matchWholeWords &&
         //    (!IsWordBorder(document, result.Index) || !IsWordBorder(document, resultEndOffset)))
         //{
         //    continue;
         //}
         res.Add(new SearchResult {
             StartOffset = result.Index, Length = result.Length, Data = result
         });
         if (returnFirst)
         {
             break;
         }
     }
     return(res);
 }
Пример #3
0
 public IList <ISearchResult> FindAll(string text, int offset, int length, SearchContext context)
 {
     return(FindAllMatches(text, offset, length, context, false));
 }