Class RegexPatternRule

All Implemented Interfaces:
RuleMatcher

public class RegexPatternRule extends AbstractPatternRule implements RuleMatcher
Matches 'regexp' elements from XML rules against sentences.
Since:
3.2
  • Field Details

    • suggestionPattern

      private static final Pattern suggestionPattern
    • matchPattern

      private static final Pattern matchPattern
    • MATCHES_IN_SUGGESTIONS_NUMBERED_FROM

      private static final int MATCHES_IN_SUGGESTIONS_NUMBERED_FROM
      See Also:
    • MAX_SENT_LENGTH

      public static final int MAX_SENT_LENGTH
      See Also:
    • pattern

      private final Pattern pattern
    • markGroup

      private final int markGroup
    • shortMessage

      private final String shortMessage
    • regexFilter

      private RegexRuleFilter regexFilter
    • requiredSubstrings

      @Nullable private final Substrings requiredSubstrings
    • caseSensitive

      private final boolean caseSensitive
  • Constructor Details

  • Method Details

    • getPattern

      public Pattern getPattern()
    • setRegexFilter

      void setRegexFilter(RegexRuleFilter filter)
    • match

      public RuleMatch[] match(AnalyzedSentence sentenceObj) throws IOException
      Description copied from class: Rule
      Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different from the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example). In other words, implementations must be stateless, so that a previous call to this method has no influence on later calls.
      Specified by:
      match in interface RuleMatcher
      Overrides:
      match in class AbstractPatternRule
      Parameters:
      sentenceObj - a pre-analyzed sentence
      Returns:
      an array of RuleMatch objects
      Throws:
      IOException
    • doMatch

      private RuleMatch[] doMatch(AnalyzedSentence sentenceObj, String text, int startPos)
    • getClausePositionsInMessage

      @NotNull private List<org.apache.commons.lang3.tuple.Pair<Integer,Integer>> getClausePositionsInMessage(Pattern pattern, String message)
    • processMessage

      private String processMessage(Matcher matcher, String message, List<org.apache.commons.lang3.tuple.Pair<Integer,Integer>> backReferences, List<org.apache.commons.lang3.tuple.Pair<Integer,Integer>> suggestions, List<Match> matches)
    • estimateContextForSureMatch

      public int estimateContextForSureMatch()
      Description copied from class: Rule
      A number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid. This is useful for check-as-you-type, where a match might occur and the word that gets typed next makes the match disappear (something one would obviously like to avoid). Note: this may over-estimate the real context size. Returns -1 when the sentence needs to end to be sure there's a match.
      Overrides:
      estimateContextForSureMatch in class Rule
    • toString

      public String toString()
      Overrides:
      toString in class AbstractPatternRule
    • getShortMessage

      String getShortMessage()
      Overrides:
      getShortMessage in class AbstractPatternRule
      Returns:
      String of short message as specified in <short>...</short>