pyparsing.CloseMatch

Module pyparsing :: Class CloseMatch |
[frames] | no frames]

# Class CloseMatch

source code

       object --+
                |
    ParserElement --+
                    |
                Token --+
                        |
                       CloseMatch

A variation on Literal which matches "close" matches, that is, strings with at most 'n' mismatching characters. `CloseMatch` takes parameters:

- `match_string` - string to be matched
- `maxMismatches` - (`default=1`) maximum number of mismatches allowed to count as a match

The results from a successful parse will contain the matched text from the input string and the following named results:

- `mismatches` - a list of the positions within the match_string where mismatches were found
- `original` - the original match_string used to compare against the input string

If `mismatches` is an empty list, then the match was an exact match.

Example:

       patt = CloseMatch("ATCATCGAATGGA")
       patt.parseString("ATCATCGAAXGGA") # -> (['ATCATCGAAXGGA'], {'mismatches': [[9]], 'original': ['ATCATCGAATGGA']})
       patt.parseString("ATCAXCGAAXGGA") # -> Exception: Expected 'ATCATCGAATGGA' (with up to 1 mismatches) (at char 0), (line:1, col:1)

       # exact match
       patt.parseString("ATCATCGAATGGA") # -> (['ATCATCGAATGGA'], {'mismatches': [[]], 'original': ['ATCATCGAATGGA']})

       # close match allowing up to 2 mismatches
       patt = CloseMatch("ATCATCGAATGGA", maxMismatches=2)
       patt.parseString("ATCAXCGAAXGGA") # -> (['ATCAXCGAAXGGA'], {'mismatches': [[4, 9]], 'original': ['ATCATCGAATGGA']})

Instance Methods
__init__(self, match_string, maxMismatches=1) x.__init__(...) initializes x; see help(type(x)) for signature | source code
parseImpl(self, instring, loc, doActions=True) | source code
Inherited from `ParserElement`: `__add__`, `__and__`, `__call__`, `__eq__`, `__hash__`, `__invert__`, `__mul__`, `__ne__`, `__or__`, `__radd__`, `__rand__`, `__repr__`, `__req__`, `__rmul__`, `__rne__`, `__ror__`, `__rsub__`, `__rxor__`, `__str__`, `__sub__`, `__xor__`, `addCondition`, `addParseAction`, `canParseNext`, `checkRecursion`, `copy`, `ignore`, `leaveWhitespace`, `matches`, `parseFile`, `parseString`, `parseWithTabs`, `postParse`, `preParse`, `runTests`, `scanString`, `searchString`, `setBreak`, `setDebug`, `setDebugActions`, `setFailAction`, `setName`, `setParseAction`, `setResultsName`, `setWhitespaceChars`, `split`, `streamline`, `suppress`, `transformString`, `tryParse`, `validate` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Static Methods
Inherited from `ParserElement`: `enablePackrat`, `inlineLiteralsUsing`, `resetCache`, `setDefaultWhitespaceChars`

Class Variables
Inherited from `ParserElement`: `DEFAULT_WHITE_CHARS`, `packrat_cache`, `packrat_cache_lock`, `packrat_cache_stats`, `verbose_stacktrace`

Properties
Inherited from `object`: `__class__`

Method Details

### __init__(self, match_string, maxMismatches=1) (Constructor) | source code
x.__init__(...) initializes x; see help(type(x)) for signature Overrides: object.__init__ (inherited documentation)

### parseImpl(self, instring, loc, doActions=True) | source code
Overrides: ParserElement.parseImpl