SubString 的摘要说明
Example #1
0
        private SubStrings ParseSupportsAsteriskAndEscaping(string searchString)
        {
            var subStrings = new SubStrings();

            for (var index = 0; index < searchString.Length; index++)
            {
                var c = searchString[index];
                switch (c)
                {
                case '*':
                    if (index < searchString.Length - 1 && searchString[index + 1] == '*')
                    {
                        subStrings.AddCharacter(c);
                        index++;
                    }
                    else
                    {
                        subStrings.FinishCurrent();
                    }
                    break;

                default:
                    subStrings.AddCharacter(c);
                    break;
                }
            }
            subStrings.FinishCurrent();
            return(subStrings);
        }
        public ParsedSearchString Parse(string searchString)
        {
            var  subStrings       = new SubStrings();
            bool inEscapeSequence = false;

            foreach (var c in searchString)
            {
                switch (c)
                {
                case '\\':
                    if (inEscapeSequence)
                    {
                        subStrings.AddCharacter('\\');
                        inEscapeSequence = false;
                    }
                    else
                    {
                        inEscapeSequence = true;
                    }
                    break;

                case '*':
                    if (inEscapeSequence)
                    {
                        subStrings.AddCharacter('*');
                        inEscapeSequence = false;
                    }
                    else
                    {
                        subStrings.FinishCurrent();
                    }
                    break;

                default:
                    inEscapeSequence = false;
                    subStrings.AddCharacter(c);
                    break;
                }
            }
            subStrings.FinishCurrent();

            // Look for the longest sub string as the main search string.
            int mainIndex = subStrings.List.IndexOf(subStrings.List.OrderByDescending(x => x.Length).FirstOrDefault());
            var mainEntry = subStrings.List.Any() ?
                            new ParsedSearchString.Entry {
                Text = subStrings.List[mainIndex], Index = mainIndex
            } :
            new ParsedSearchString.Entry {
                Text = "", Index = -1
            };
            var otherEntries = Enumerable
                               .Range(0, subStrings.List.Count)
                               .Where(i => i != mainIndex)
                               .Select(i => new ParsedSearchString.Entry {
                Text = subStrings.List[i], Index = i
            })
                               .ToList();

            return(new ParsedSearchString(mainEntry, otherEntries.Where(e => e.Index < mainEntry.Index), otherEntries.Where(e => e.Index > mainEntry.Index)));
        }
Example #3
0
        private SubStrings ParseNoSpecialCharacters(string searchString)
        {
            var subStrings = new SubStrings();

            foreach (var c in searchString)
            {
                subStrings.AddCharacter(c);
            }
            subStrings.FinishCurrent();
            return(subStrings);
        }
Example #4
0
    public ParsedSearchString Parse(string searchString) {
      var subStrings = new SubStrings();
      bool inEscapeSequence = false;
      foreach (var c in searchString) {
        switch (c) {
          case '\\':
            if (inEscapeSequence) {
              subStrings.AddCharacter('\\');
              inEscapeSequence = false;
            } else {
              inEscapeSequence = true;
            }
            break;
          case '*':
            if (inEscapeSequence) {
              subStrings.AddCharacter('*');
              inEscapeSequence = false;
            } else {
              subStrings.FinishCurrent();
            }
            break;
          default:
            if (inEscapeSequence) {
              throw new RecoverableErrorException(string.Format("Invalid escape character sequence \"\\{0}\"",c));
            }
            inEscapeSequence = false;
            subStrings.AddCharacter(c);
            break;
        }
      }
      if (inEscapeSequence) {
        throw new RecoverableErrorException("Unterminated escape character sequence");
      }
      subStrings.FinishCurrent();

      // Look for the longest sub string as the main search string.
      int mainIndex = subStrings.List.IndexOf(subStrings.List.OrderByDescending(x => x.Length).FirstOrDefault());
      var mainEntry = subStrings.List.Any() ?
                        new ParsedSearchString.Entry {Text = subStrings.List[mainIndex], Index = mainIndex} :
                        new ParsedSearchString.Entry {Text = "", Index = -1};
      var otherEntries = Enumerable
        .Range(0, subStrings.List.Count)
        .Where(i => i != mainIndex)
        .Select(i => new ParsedSearchString.Entry { Text = subStrings.List[i], Index = i })
        .ToList();
      return new ParsedSearchString(mainEntry, otherEntries.Where(e => e.Index < mainEntry.Index), otherEntries.Where(e => e.Index > mainEntry.Index));
    }
Example #5
0
        protected override void ManageParseData(WWW www)
        {
            strings.AddRange(Regex.Split(www.text, "#END#"));
            strings.RemoveAt(strings.Count - 1);

            for (int i = 0; i < strings.Count; i++)
            {
                Debug.Log("STRING: " + i + "   content : " + strings[i]);
            }
            //Debug.Log("Downloading Tooltip Language parts from: " + FINISHED_URL);

            //reset database:
            DataBase.Data = new Dev6.CustomDict <string, string>();

            for (int i = 0; i < strings.Count; i++)
            {
                SubStrings.AddRange(Regex.Split(strings[i].ToString(), "#KEY#"));
                DataBase.Data.Add(SubStrings[SubStrings.Count - 2].ToString(), SubStrings[SubStrings.Count - 1].ToString());
            }
        }
Example #6
0
        private SubStrings ParseSupportsAsterisk(string searchString)
        {
            var subStrings = new SubStrings();

            foreach (var c in searchString)
            {
                switch (c)
                {
                case '*':
                    subStrings.FinishCurrent();
                    break;

                default:
                    subStrings.AddCharacter(c);
                    break;
                }
            }
            subStrings.FinishCurrent();
            return(subStrings);
        }