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

# Class Combine

source code

         object --+
                  |
      ParserElement --+
                      |
    ParseElementEnhance --+
                          |
             TokenConverter --+
                              |
                             Combine

Converter to concatenate all matching tokens to a single string. By default, the matching patterns must also be contiguous in the input string; this can be disabled by specifying `'adjacent=False'` in the constructor.

Example:

       real = Word(nums) + '.' + Word(nums)
       print(real.parseString('3.1416')) # -> ['3', '.', '1416']
       # will also erroneously match the following
       print(real.parseString('3. 1416')) # -> ['3', '.', '1416']

       real = Combine(Word(nums) + '.' + Word(nums))
       print(real.parseString('3.1416')) # -> ['3.1416']
       # no match when there are internal spaces
       print(real.parseString('3. 1416')) # -> Exception: Expected W:(0123...)

Instance Methods
__init__(self, expr, joinString=`'````'`, adjacent=True) x.__init__(...) initializes x; see help(type(x)) for signature | source code
ignore(self, other) Define expression to be ignored (e.g., comments) while doing pattern matching; may be called repeatedly, to define multiple comment or other ignorable patterns. | source code
postParse(self, instring, loc, tokenlist) | source code
Inherited from `ParseElementEnhance`: `__str__`, `checkRecursion`, `leaveWhitespace`, `parseImpl`, `streamline`, `validate` Inherited from `ParserElement`: `__add__`, `__and__`, `__call__`, `__eq__`, `__hash__`, `__invert__`, `__mul__`, `__ne__`, `__or__`, `__radd__`, `__rand__`, `__repr__`, `__req__`, `__rmul__`, `__rne__`, `__ror__`, `__rsub__`, `__rxor__`, `__sub__`, `__xor__`, `addCondition`, `addParseAction`, `canParseNext`, `copy`, `matches`, `parseFile`, `parseString`, `parseWithTabs`, `preParse`, `runTests`, `scanString`, `searchString`, `setBreak`, `setDebug`, `setDebugActions`, `setFailAction`, `setName`, `setParseAction`, `setResultsName`, `setWhitespaceChars`, `split`, `suppress`, `transformString`, `tryParse` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

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

Class Variables
| __slotnames__ = ``[``]``
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, expr, joinString=`'````'`, adjacent=True) (Constructor) | source code
x.__init__(...) initializes x; see help(type(x)) for signature Overrides: object.__init__ (inherited documentation)

### ignore(self, other) | source code
Define expression to be ignored (e.g., comments) while doing pattern matching; may be called repeatedly, to define multiple comment or other ignorable patterns. Example:
       patt = OneOrMore(Word(alphas))
       patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj']

       patt.ignore(cStyleComment)
       patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj', 'lskjd']
Overrides: ParserElement.ignore (inherited documentation)

### postParse(self, instring, loc, tokenlist) | source code
Overrides: ParserElement.postParse