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

# Class SkipTo

source code

         object --+
                  |
      ParserElement --+
                      |
    ParseElementEnhance --+
                          |
                         SkipTo

Token for skipping over all undefined text until the matched expression is found.

Parameters:

- expr - target expression marking the end of the data to be skipped
- include - (default=`False`) if True, the target expression is also parsed (the skipped text and target expression are returned as a 2-element list).
- ignore - (default=`None`) used to define grammars (typically quoted strings and comments) that might contain false matches to the target expression
- failOn - (default=`None`) define expressions that are not allowed to be included in the skipped test; if found before the target expression is found, the SkipTo is not a match

Example:

       report = '''
           Outstanding Issues Report - 1 Jan 2000

              # | Severity | Description                               |  Days Open
           -----+----------+-------------------------------------------+-----------
            101 | Critical | Intermittent system crash                 |          6
             94 | Cosmetic | Spelling error on Login ('log|n')         |         14
             79 | Minor    | System slow when running too many reports |         47
           '''
       integer = Word(nums)
       SEP = Suppress('|')
       # use SkipTo to simply match everything up until the next SEP
       # - ignore quoted strings, so that a '|' character inside a quoted string does not match
       # - parse action will call token.strip() for each matched token, i.e., the description body
       string_data = SkipTo(SEP, ignore=quotedString)
       string_data.setParseAction(tokenMap(str.strip))
       ticket_expr = (integer("issue_num") + SEP
                     + string_data("sev") + SEP
                     + string_data("desc") + SEP
                     + integer("days_open"))

       for tkt in ticket_expr.searchString(report):
           print tkt.dump()

prints:

       ['101', 'Critical', 'Intermittent system crash', '6']
       - days_open: 6
       - desc: Intermittent system crash
       - issue_num: 101
       - sev: Critical
       ['94', 'Cosmetic', "Spelling error on Login ('log|n')", '14']
       - days_open: 14
       - desc: Spelling error on Login ('log|n')
       - issue_num: 94
       - sev: Cosmetic
       ['79', 'Minor', 'System slow when running too many reports', '47']
       - days_open: 47
       - desc: System slow when running too many reports
       - issue_num: 79
       - sev: Minor

Instance Methods
__init__(self, other, include=False, ignore=None, failOn=None) x.__init__(...) initializes x; see help(type(x)) for signature | source code
parseImpl(self, instring, loc, doActions=True) | source code
Inherited from `ParseElementEnhance`: `__str__`, `checkRecursion`, `ignore`, `leaveWhitespace`, `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`, `postParse`, `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
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, other, include=False, ignore=None, failOn=None) (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