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

# Class Word

source code

       object --+
                |
    ParserElement --+
                    |
                Token --+
                        |
                       Word

Token for matching words composed of allowed character sets. Defined with string containing all allowed initial characters, an optional string containing allowed body characters (if omitted, defaults to the initial character set), and an optional minimum, maximum, and/or exact length. The default value for `min` is 1 (a minimum value < 1 is not valid); the default values for `max` and `exact` are 0, meaning no maximum or exact length restriction. An optional `excludeChars` parameter can list characters that might be found in the input `bodyChars` string; useful to define a word of all printables except for one or two characters, for instance.

srange is useful for defining custom character set strings for defining `Word` expressions, using range notation from regular expression character sets.

A common mistake is to use `Word` to match a specific literal string, as in `Word("Address")`. Remember that `Word` uses the string argument to define sets of matchable characters. This expression would match "Add", "AAA", "dAred", or any other word made up of the characters 'A', 'd', 'r', 'e', and 's'. To match an exact literal string, use Literal or Keyword.

pyparsing includes helper strings for building Words:

- alphas
- nums
- alphanums
- hexnums
- alphas8bit (alphabetic characters in ASCII range 128-255 - accented, tilded, umlauted, etc.)
- punc8bit (non-alphabetic characters in ASCII range 128-255 - currency, symbols, superscripts, diacriticals, etc.)
- printables (any non-whitespace character)

Example:

       # a word composed of digits
       integer = Word(nums) # equivalent to Word("0123456789") or Word(srange("0-9"))

       # a word with a leading capital, and zero or more lowercase
       capital_word = Word(alphas.upper(), alphas.lower())

       # hostnames are alphanumeric, with leading alpha, and '-'
       hostname = Word(alphas, alphanums+'-')

       # roman numeral (not a strict parser, accepts invalid mix of characters)
       roman = Word("IVXLCDM")

       # any string of non-whitespace characters, except for ','
       csv_value = Word(printables, excludeChars=",")

Instance Methods
__init__(self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=None) x.__init__(...) initializes x; see help(type(x)) for signature | source code
parseImpl(self, instring, loc, doActions=True) | source code
__str__(self) str(x) | source code
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`, `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
| __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, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=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

### __str__(self) (Informal representation operator) | source code
str(x) Overrides: object.__str__ (inherited documentation)