Class RegexPatternRule

    • Field Detail

      • suggestionPattern

        private static final java.util.regex.Pattern suggestionPattern
      • matchPattern

        private static final java.util.regex.Pattern matchPattern
      • MATCHES_IN_SUGGESTIONS_NUMBERED_FROM

        private static final int MATCHES_IN_SUGGESTIONS_NUMBERED_FROM
        See Also:
        Constant Field Values
      • pattern

        private final java.util.regex.Pattern pattern
      • markGroup

        private final int markGroup
      • shortMessage

        private final java.lang.String shortMessage
    • Constructor Detail

      • RegexPatternRule

        public RegexPatternRule​(java.lang.String id,
                                java.lang.String description,
                                java.lang.String message,
                                java.lang.String shortMessage,
                                java.lang.String suggestionsOutMsg,
                                Language language,
                                java.util.regex.Pattern regex,
                                int regexpMark)
    • Method Detail

      • getPattern

        public java.util.regex.Pattern getPattern()
      • match

        public RuleMatch[] match​(AnalyzedSentence sentenceObj)
                          throws java.io.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 than 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).
        Specified by:
        match in interface RuleMatcher
        Overrides:
        match in class AbstractPatternRule
        Parameters:
        sentenceObj - a pre-analyzed sentence
        Returns:
        an array of RuleMatch objects
        Throws:
        java.io.IOException
      • getClausePositionsInMessage

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

        private java.lang.String processMessage​(java.util.regex.Matcher matcher,
                                                java.lang.String message,
                                                java.util.List<org.apache.commons.lang3.tuple.Pair<java.lang.Integer,​java.lang.Integer>> backReferences,
                                                java.util.List<org.apache.commons.lang3.tuple.Pair<java.lang.Integer,​java.lang.Integer>> suggestions,
                                                java.util.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
      • getShortMessage

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