/// <summary> /// Returns the words contained in the specified text, delimiting based on the specified options. /// </summary> /// <param name="text"> /// A <see cref="String"/> containing the text to parse. /// </param> /// <param name="options"> /// One or more of the <see cref="WordParserOptions"/> specifying parsing and delimiting options. /// </param> /// <param name="prefix"> /// A <see cref="Char"/> representing an optional prefix of <paramref name="text"/>, that if present, /// will be returned as a separate token. /// </param> /// <returns> /// A <see cref="Collection{T}"/> of strings containing the words contained in <paramref name="text"/>. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="text"/> is <see langword="null"/>. /// </exception> /// <exception cref="InvalidEnumArgumentException"> /// <paramref name="options"/> is not one or more of the <see cref="WordParserOptions"/> values. /// </exception> internal static Collection <string> Parse(string text, WordParserOptions options, char prefix) { WordParser parser = new WordParser(text, options, prefix); Collection <string> words = new Collection <string>(); string word; while ((word = parser.NextWord()) != null) { words.Add(word); } return(words); }
/// <summary> /// Returns a value indicating whether at least one of the specified words occurs, using a case-insensitive ordinal comparision, within the specified text. /// </summary> /// <param name="text"> /// A <see cref="String"/> containing the text to check. /// </param> /// <param name="options"> /// One or more of the <see cref="WordParserOptions"/> specifying parsing and delimiting options. /// </param> /// <param name="prefix"> /// A <see cref="Char"/> representing an optional prefix of <paramref name="text"/>, that if present, /// will be returned as a separate token. /// </param> /// <param name="words"> /// A <see cref="String"/> array containing the words to seek. /// </param> /// <returns> /// <see langword="true"/> if at least one of the elements within <paramref name="words"/> occurs within <paramref name="text"/>, otherwise, <see langword="false"/>. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="text"/> is <see langword="null"/>. /// <para> /// -or- /// </para> /// <paramref name="words"/> is <see langword="null"/>. /// </exception> /// <exception cref="InvalidEnumArgumentException"> /// <paramref name="options"/> is not one or more of the <see cref="WordParserOptions"/> values. /// </exception> internal static bool ContainsWord(string text, WordParserOptions options, char prefix, params string[] words) { if (words == null) { throw new ArgumentNullException(nameof(words)); } WordParser parser = new WordParser(text, options, prefix); string parsedWord; while ((parsedWord = parser.NextWord()) != null) { foreach (string word in words) { if (string.Equals(parsedWord, word, StringComparison.OrdinalIgnoreCase)) { return(true); } } } return(false); }
private static bool HasCorrectPrefix(ISymbol symbol, char prefix) { WordParser parser = new WordParser(symbol.Name, WordParserOptions.SplitCompoundWords, prefix); string firstWord = parser.NextWord(); if (firstWord == null || firstWord.Length > 1) { return false; } return firstWord[0] == prefix; }
/// <summary> /// Returns a value indicating whether at least one of the specified words occurs, using a case-insensitive ordinal comparision, within the specified text. /// </summary> /// <param name="text"> /// A <see cref="String"/> containing the text to check. /// </param> /// <param name="options"> /// One or more of the <see cref="WordParserOptions"/> specifying parsing and delimiting options. /// </param> /// <param name="prefix"> /// A <see cref="Char"/> representing an optional prefix of <paramref name="text"/>, that if present, /// will be returned as a separate token. /// </param> /// <param name="words"> /// A <see cref="String"/> array containing the words to seek. /// </param> /// <returns> /// <see langword="true"/> if at least one of the elements within <paramref name="words"/> occurs within <paramref name="text"/>, otherwise, <see langword="false"/>. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="text"/> is <see langword="null"/>. /// <para> /// -or- /// </para> /// <paramref name="words"/> is <see langword="null"/>. /// </exception> /// <exception cref="InvalidEnumArgumentException"> /// <paramref name="options"/> is not one or more of the <see cref="WordParserOptions"/> values. /// </exception> internal static bool ContainsWord(string text, WordParserOptions options, char prefix, params string[] words) { if (words == null) { throw new ArgumentNullException("words"); } WordParser parser = new WordParser(text, options, prefix); string parsedWord; while ((parsedWord = parser.NextWord()) != null) { foreach (string word in words) { if (string.Equals(parsedWord, word, StringComparison.OrdinalIgnoreCase)) { return true; } } } return false; }
/// <summary> /// Returns the words contained in the specified text, delimiting based on the specified options. /// </summary> /// <param name="text"> /// A <see cref="String"/> containing the text to parse. /// </param> /// <param name="options"> /// One or more of the <see cref="WordParserOptions"/> specifying parsing and delimiting options. /// </param> /// <param name="prefix"> /// A <see cref="Char"/> representing an optional prefix of <paramref name="text"/>, that if present, /// will be returned as a separate token. /// </param> /// <returns> /// A <see cref="Collection{T}"/> of strings containing the words contained in <paramref name="text"/>. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="text"/> is <see langword="null"/>. /// </exception> /// <exception cref="InvalidEnumArgumentException"> /// <paramref name="options"/> is not one or more of the <see cref="WordParserOptions"/> values. /// </exception> internal static Collection<string> Parse(string text, WordParserOptions options, char prefix) { WordParser parser = new WordParser(text, options, prefix); Collection<string> words = new Collection<string>(); string word; while ((word = parser.NextWord()) != null) { words.Add(word); } return words; }