Wrapper for PCRE library (Perl Compatible Regular Expressions).
Based on PME - PCRE Made Easy by Zachary Hansen.
Supports main Perl operations using regular expressions (Match, Substitute and Split). To retrieve the results one can simply use operator[] returning a TString.
See regexp_pme.C for example.
Definition at line 97 of file TPRegexp.h.
Public Member Functions | |
| TPMERegexp () | |
| Default constructor. This regexp will match an empty string. | |
| TPMERegexp (const TPMERegexp &r) | |
| Copy constructor. | |
| TPMERegexp (const TString &s, const TString &opts="", Int_t nMatchMax=10) | |
| Constructor. | |
| TPMERegexp (const TString &s, UInt_t opts, Int_t nMatchMax=10) | |
| Constructor. | |
| virtual | ~TPMERegexp () |
| void | AssignGlobalState (const TPMERegexp &re) |
| Copy global-match state from 're; so that this regexp can continue parsing the string from where 're' left off. | |
| Int_t | GetGlobalPosition () const |
| Int_t | GetNMaxMatches () const |
| TClass * | IsA () const override |
| Int_t | Match (const TString &s, UInt_t start=0) |
| Runs a match on s against the regex 'this' was created with. | |
| Int_t | NMatches () const |
| TString | operator[] (Int_t) |
| Returns the sub-string from the internal fMarkers vector. | |
| virtual void | Print (Option_t *option="") |
| Print the regular expression and modifier options. | |
| void | Reset (const TString &s, const TString &opts="", Int_t nMatchMax=-1) |
| Reset the pattern and options. | |
| void | Reset (const TString &s, UInt_t opts, Int_t nMatchMax=-1) |
| Reset the pattern and options. | |
| void | ResetGlobalState () |
| Reset state of global match. | |
| void | SetNMaxMatches (Int_t nm) |
| Int_t | Split (const TString &s, Int_t maxfields=0) |
| Splits into at most maxfields. | |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| Int_t | Substitute (TString &s, const TString &r, Bool_t doDollarSubst=kTRUE) |
| Substitute matching part of s with r, dollar back-ref substitution is performed if doDollarSubst is true (default). | |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
Protected Types | |
| enum | { kPCRE_GLOBAL = 0x80000000 , kPCRE_OPTIMIZE = 0x40000000 , kPCRE_DEBUG_MSGS = 0x20000000 , kPCRE_INTMASK = 0x0FFF } |
Protected Member Functions | |
| void | Compile () |
| Compile the fPattern. | |
| TString | GetModifiers () const |
| Return PCRE modifier options as string. | |
| TString | GetPattern () const |
| Bool_t | IsValid () const |
| Returns true if underlying PCRE structure has been successfully generated via regexp compilation. | |
| Int_t | Match (const TString &s, const TString &mods="", Int_t start=0, Int_t nMaxMatch=10, TArrayI *pos=nullptr) |
| The number of matches is returned, this equals the full match + sub-pattern matches. | |
| Bool_t | MatchB (const TString &s, const TString &mods="", Int_t start=0, Int_t nMaxMatch=10) |
| Int_t | MatchInternal (const TString &s, Int_t start, Int_t nMaxMatch, TArrayI *pos=nullptr) const |
| Perform the actual matching - protected method. | |
| TObjArray * | MatchS (const TString &s, const TString &mods="", Int_t start=0, Int_t nMaxMatch=10) |
| Returns a TObjArray of matched substrings as TObjString's. | |
| void | Optimize () |
| Send the pattern through the optimizer. | |
| UInt_t | ParseMods (const TString &mods) const |
| Translate Perl modifier flags into pcre flags. | |
| Int_t | ReplaceSubs (const TString &s, TString &final, const TString &replacePattern, Int_t *ovec, Int_t nmatch) const |
| Returns the number of expanded '$' constructs. | |
| Int_t | Substitute (TString &s, const TString &replace, const TString &mods="", Int_t start=0, Int_t nMatchMax=10) |
| Substitute replaces the string s by a new string in which matching patterns are replaced by the replacePattern string. | |
| Int_t | SubstituteInternal (TString &s, const TString &replace, Int_t start, Int_t nMaxMatch0, Bool_t doDollarSubst) const |
| Perform pattern substitution with optional back-ref replacement. | |
Static Protected Member Functions | |
| static Bool_t | GetThrowAtCompileError () |
| Get value of static flag controlling whether exception should be thrown upon an error during regular expression compilation by the PCRE engine. | |
| static void | SetThrowAtCompileError (Bool_t throwp) |
| Set static flag controlling whether exception should be thrown upon an error during regular expression compilation by the PCRE engine. | |
Protected Attributes | |
| void * | fAddressOfLastString |
| Int_t | fLastGlobalPosition |
| TString | fLastStringMatched |
| TArrayI | fMarkers |
| Int_t | fNMatches |
| Int_t | fNMaxMatches |
| TString | fPattern |
| UInt_t | fPCREOpts |
| PCREPriv_t * | fPriv |
Static Protected Attributes | |
| static Bool_t | fgThrowAtCompileError = kFALSE |
Private Member Functions | |
| TPMERegexp & | operator= (const TPMERegexp &)=delete |
#include <TPRegexp.h>
|
protectedinherited |
| Enumerator | |
|---|---|
| kPCRE_GLOBAL | |
| kPCRE_OPTIMIZE | |
| kPCRE_DEBUG_MSGS | |
| kPCRE_INTMASK | |
Definition at line 39 of file TPRegexp.h.
| TPMERegexp::TPMERegexp | ( | ) |
Default constructor. This regexp will match an empty string.
Definition at line 675 of file TPRegexp.cxx.
Constructor.
| [in] | s | string to compile into regular expression |
| [in] | opts | perl-style character flags to be set on TPME object |
| [in] | nMatchMax | maximum number of matches |
Definition at line 692 of file TPRegexp.cxx.
Constructor.
| [in] | s | string to compile into regular expression |
| [in] | opts | PCRE-style option flags to be set on TPME object |
| [in] | nMatchMax | maximum number of matches |
Definition at line 710 of file TPRegexp.cxx.
| TPMERegexp::TPMERegexp | ( | const TPMERegexp & | r | ) |
Copy constructor.
Only PCRE specifics are copied, not last-match or global-match information.
Definition at line 726 of file TPRegexp.cxx.
|
inlinevirtual |
Definition at line 118 of file TPRegexp.h.
| void TPMERegexp::AssignGlobalState | ( | const TPMERegexp & | re | ) |
Copy global-match state from 're; so that this regexp can continue parsing the string from where 're' left off.
Alternatively, GetGlobalPosition() get be used to retrieve the last match position so that it can passed to Match().
Ideally, as it is done in PERL, the last match position would be stored in the TString itself.
Definition at line 771 of file TPRegexp.cxx.
|
static |
|
static |
|
inlinestaticconstexpr |
Definition at line 139 of file TPRegexp.h.
|
protectedinherited |
Compile the fPattern.
Definition at line 225 of file TPRegexp.cxx.
|
inlinestatic |
Definition at line 139 of file TPRegexp.h.
|
inline |
Definition at line 126 of file TPRegexp.h.
|
inherited |
Return PCRE modifier options as string.
For meaning of mods see ParseMods().
Definition at line 207 of file TPRegexp.cxx.
|
inline |
Definition at line 123 of file TPRegexp.h.
|
inlineinherited |
Definition at line 85 of file TPRegexp.h.
|
staticinherited |
Get value of static flag controlling whether exception should be thrown upon an error during regular expression compilation by the PCRE engine.
Definition at line 587 of file TPRegexp.cxx.
|
inlineoverridevirtual |
Reimplemented from TPRegexp.
Definition at line 139 of file TPRegexp.h.
|
inherited |
Returns true if underlying PCRE structure has been successfully generated via regexp compilation.
Definition at line 578 of file TPRegexp.cxx.
Runs a match on s against the regex 'this' was created with.
| [in] | s | string to match against |
| [in] | start | offset at which to start matching |
Definition at line 795 of file TPRegexp.cxx.
|
inherited |
The number of matches is returned, this equals the full match + sub-pattern matches.
nMaxMatch is the maximum allowed number of matches. pos contains the string indices of the matches. Its usage is shown in the routine MatchS. For meaning of mods see ParseMods().
Definition at line 409 of file TPRegexp.cxx.
|
inlineinherited |
Definition at line 78 of file TPRegexp.h.
|
protectedinherited |
Perform the actual matching - protected method.
Definition at line 355 of file TPRegexp.cxx.
|
inherited |
Returns a TObjArray of matched substrings as TObjString's.
The TObjArray is owner of the objects and must be deleted by the user. The first entry is the full matched pattern, followed by the sub-patterns. If a pattern was not matched, it will return an empty substring:
produces: "abc" "a" "" "bc"
For meaning of mods see ParseMods().
Definition at line 440 of file TPRegexp.cxx.
|
inline |
Definition at line 134 of file TPRegexp.h.
|
privatedelete |
Returns the sub-string from the internal fMarkers vector.
Requires having run match or split first.
Definition at line 1005 of file TPRegexp.cxx.
|
protectedinherited |
Send the pattern through the optimizer.
Definition at line 276 of file TPRegexp.cxx.
Translate Perl modifier flags into pcre flags.
The supported modStr characters are: g, i, m, o, s, x, and the special d for debug. The meaning of the letters is:
Definition at line 162 of file TPRegexp.cxx.
|
virtual |
Print the regular expression and modifier options.
If 'option' contains "all", prints also last string match and match results.
Definition at line 1020 of file TPRegexp.cxx.
|
protectedinherited |
Returns the number of expanded '$' constructs.
Definition at line 299 of file TPRegexp.cxx.
Reset the pattern and options.
If 'nMatchMax' other than -1 (the default) is passed, it is also set.
Definition at line 740 of file TPRegexp.cxx.
Reset the pattern and options.
If 'nMatchMax' other than -1 (the default) is passed, it is also set.
Definition at line 749 of file TPRegexp.cxx.
| void TPMERegexp::ResetGlobalState | ( | ) |
Reset state of global match.
This happens automatically when a new string is passed for matching. But be carefull, as the address of last TString object is used to make this decision.
Definition at line 783 of file TPRegexp.cxx.
|
inline |
Definition at line 124 of file TPRegexp.h.
|
staticinherited |
Set static flag controlling whether exception should be thrown upon an error during regular expression compilation by the PCRE engine.
Definition at line 596 of file TPRegexp.cxx.
Splits into at most maxfields.
If maxfields is unspecified or 0, trailing empty matches are discarded. If maxfields is positive, no more than maxfields fields will be returned and trailing empty matches are preserved. If maxfields is empty, all fields (including trailing empty ones) are returned. This should be the same as the perl behaviour.
If pattern produces sub-matches, these are also stored in the result.
A pattern matching the null string will split the value of EXPR into separate characters at each point it matches that way.
| [in] | s | string to split |
| [in] | maxfields | maximum number of fields to be split out. 0 means split all fields, but discard any trailing empty bits. Negative means split all fields and keep trailing empty bits. Positive means keep up to N fields including any empty fields less than N. Anything remaining is in the last field. |
Definition at line 852 of file TPRegexp.cxx.
|
inline |
Definition at line 139 of file TPRegexp.h.
Substitute matching part of s with r, dollar back-ref substitution is performed if doDollarSubst is true (default).
Returns the number of substitutions made.
After the substitution, another pass is made over the resulting string and the following special tokens are interpreted:
Definition at line 961 of file TPRegexp.cxx.
|
inherited |
Substitute replaces the string s by a new string in which matching patterns are replaced by the replacePattern string.
The number of substitutions are returned.
produces: 2 "mies noot aap"
For meaning of mods see ParseMods().
Definition at line 560 of file TPRegexp.cxx.
|
protectedinherited |
Perform pattern substitution with optional back-ref replacement.
Definition at line 466 of file TPRegexp.cxx.
|
protected |
Definition at line 108 of file TPRegexp.h.
Definition at line 50 of file TPRegexp.h.
|
protected |
Definition at line 110 of file TPRegexp.h.
|
protected |
Definition at line 107 of file TPRegexp.h.
|
protected |
Definition at line 105 of file TPRegexp.h.
|
protected |
Definition at line 104 of file TPRegexp.h.
|
protected |
Definition at line 103 of file TPRegexp.h.
|
protectedinherited |
Definition at line 46 of file TPRegexp.h.
|
protectedinherited |
Definition at line 48 of file TPRegexp.h.
|
protectedinherited |
Definition at line 47 of file TPRegexp.h.