Module pyparsing :: Class Regex
[hide private]
[frames] | no frames]

Class Regex

source code

   object --+        
            |        
ParserElement --+    
                |    
            Token --+
                    |
                   Regex

Token for matching strings that match a given regular expression. Defined with string specifying the regular expression in a form recognized by the stdlib Python `re module <https://docs.python.org/3/library/re.html>`_. If the given regex contains named groups (defined using ``(?P<name>...)``), these will be preserved as named parse results.

If instead of the Python stdlib re module you wish to use a different RE module (such as the `regex` module), you can replace it by either building your Regex object with a compiled RE that was compiled using regex:

Example:

   realnum = Regex(r"[+-]?\d+\.\d*")
   date = Regex(r'(?P<year>\d{4})-(?P<month>\d\d?)-(?P<day>\d\d?)')
   # ref: https://stackoverflow.com/questions/267399/how-do-you-match-only-valid-roman-numerals-with-a-regular-expression
   roman = Regex(r"M{0,4}(CM|CD|D?{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})")

   # use regex module instead of stdlib re module to construct a Regex using
   # a compiled regular expression
   import regex
   parser = pp.Regex(regex.compile(r'[0-9]'))
Nested Classes [hide private]
Instance Methods [hide private]
 
__init__(self, pattern, flags=0, asGroupList=False, asMatch=False)
The parameters ``pattern`` and ``flags`` are passed to the ``re.compile()`` function as-is.
source code
 
parseImpl(self, instring, loc, doActions=True) source code
 
parseImplAsGroupList(self, instring, loc, doActions=True) source code
 
parseImplAsMatch(self, instring, loc, doActions=True) source code
 
__str__(self)
str(x)
source code
 
sub(self, repl)
Return Regex with an attached parse action to transform the parsed result as if called using `re.sub(expr, repl, string) <https://docs.python.org/3/library/re.html#re.sub>`_.
source code

Inherited from ParserElement: __add__, __and__, __call__, __eq__, __getitem__, __hash__, __invert__, __iter__, __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 [hide private]

Inherited from ParserElement: enablePackrat, inlineLiteralsUsing, resetCache, setDefaultWhitespaceChars

Class Variables [hide private]
  __slotnames__ = []

Inherited from ParserElement: DEFAULT_WHITE_CHARS, packrat_cache, packrat_cache_lock, packrat_cache_stats, verbose_stacktrace

Inherited from ParserElement (private): _packratEnabled

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, pattern, flags=0, asGroupList=False, asMatch=False)
(Constructor)

source code 

The parameters ``pattern`` and ``flags`` are passed to the ``re.compile()`` function as-is. See the Python `re module <https://docs.python.org/3/library/re.html>`_ module for an explanation of the acceptable patterns and flags.

Overrides: object.__init__

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)

sub(self, repl)

source code 

Return Regex with an attached parse action to transform the parsed result as if called using `re.sub(expr, repl, string) <https://docs.python.org/3/library/re.html#re.sub>`_.

Example:

   make_html = Regex(r"(\w+):(.*?):").sub(r"<\1>\2</\1>")
   print(make_html.transformString("h1:main title:"))
   # prints "<h1>main title</h1>"