📄 classpregularexpression.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>PRegularExpression class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>PRegularExpression Class Reference</h1><code>#include <<a class="el" href="pstring_8h-source.html">pstring.h</a>></code><p><p>Inheritance diagram for PRegularExpression:<p><center><img src="classPRegularExpression.png" usemap="#PRegularExpression_map" border="0" alt=""></center><map name="PRegularExpression_map"><area href="classPObject.html" alt="PObject" shape="rect" coords="0,0,126,24"></map><a href="classPRegularExpression-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Constructors & destructors</h2></td></tr><tr><td nowrap align=right valign=top>enum </td><td valign=bottom>{ <a class="el" href="classPRegularExpression.html#z285_0s0">Extended</a> = 1, <a class="el" href="classPRegularExpression.html#z285_0s1">IgnoreCase</a> = 2, <a class="el" href="classPRegularExpression.html#z285_0s2">AnchorNewLine</a> = 4 }</td></tr><tr><td> </td><td><font size=-1><em>Flags for compiler options.</em> <a href="#z285_0">More...</a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>enum </td><td valign=bottom>{ <a class="el" href="classPRegularExpression.html#z285_1s3">NotBeginningOfLine</a> = 1, <a class="el" href="classPRegularExpression.html#z285_1s4">NotEndofLine</a> = 2 }</td></tr><tr><td> </td><td><font size=-1><em>Flags for execution options.</em> <a href="#z285_1">More...</a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z285_2">PRegularExpression</a> ()</td></tr><tr><td> </td><td><font size=-1><em>Create a new, empty, regular expression.</em> <a href="#z285_2"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z285_3">PRegularExpression</a> (const <a class="el" href="classPString.html">PString</a> &pattern, int flags=IgnoreCase)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z285_4">PRegularExpression</a> (const char *cpattern, int flags=IgnoreCase)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z285_5">PRegularExpression</a> (const PRegularExpression &)</td></tr><tr><td nowrap align=right valign=top>PRegularExpression & </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z285_6">operator=</a> (const PRegularExpression &)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z285_7">~PRegularExpression</a> ()</td></tr><tr><td> </td><td><font size=-1><em>Release storage for the compiled regular expression.</em> <a href="#z285_7"></a><em></em></font><br><br></td></tr><tr><td colspan=2><br><h2>Status functions</h2></td></tr><tr><td nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z287_0">ErrorCodes</a> { <br> <a class="el" href="classPRegularExpression.html#z287_0s5">NoError</a> = 0, <a class="el" href="classPRegularExpression.html#z287_0s6">NoMatch</a>, <a class="el" href="classPRegularExpression.html#z287_0s7">BadPattern</a>, <a class="el" href="classPRegularExpression.html#z287_0s8">CollateError</a>, <br> <a class="el" href="classPRegularExpression.html#z287_0s9">BadClassType</a>, <a class="el" href="classPRegularExpression.html#z287_0s10">BadEscape</a>, <a class="el" href="classPRegularExpression.html#z287_0s11">BadSubReg</a>, <a class="el" href="classPRegularExpression.html#z287_0s12">UnmatchedBracket</a>, <br> <a class="el" href="classPRegularExpression.html#z287_0s13">UnmatchedParen</a>, <a class="el" href="classPRegularExpression.html#z287_0s14">UnmatchedBrace</a>, <a class="el" href="classPRegularExpression.html#z287_0s15">BadBR</a>, <a class="el" href="classPRegularExpression.html#z287_0s16">RangeError</a>, <br> <a class="el" href="classPRegularExpression.html#z287_0s17">OutOfMemory</a>, <a class="el" href="classPRegularExpression.html#z287_0s18">BadRepitition</a>, <a class="el" href="classPRegularExpression.html#z287_0s19">PrematureEnd</a>, <a class="el" href="classPRegularExpression.html#z287_0s20">TooBig</a>, <br> <a class="el" href="classPRegularExpression.html#z287_0s21">UnmatchedRParen</a>, <a class="el" href="classPRegularExpression.html#z287_0s22">NotCompiled</a><br> }</td></tr><tr><td> </td><td><font size=-1><em>Error codes.</em> <a href="#z287_0">More...</a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPRegularExpression.html#z287_0">ErrorCodes</a> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z287_1">GetErrorCode</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z287_2">GetErrorText</a> () const</td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td colspan="2"><div class="groupHeader">Compile & Execute functions</div></td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_0">Compile</a> (const <a class="el" href="classPString.html">PString</a> &pattern, int flags=IgnoreCase)</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_1">Compile</a> (const char *cpattern, int flags=IgnoreCase)</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_2">Execute</a> (const <a class="el" href="classPString.html">PString</a> &str, PINDEX &start, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_3">Execute</a> (const <a class="el" href="classPString.html">PString</a> &str, PINDEX &start, PINDEX &len, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_4">Execute</a> (const char *cstr, PINDEX &start, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_5">Execute</a> (const char *cstr, PINDEX &start, PINDEX &len, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_6">Execute</a> (const <a class="el" href="classPString.html">PString</a> &str, <a class="el" href="classPIntArray.html">PIntArray</a> &starts, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_7">Execute</a> (const <a class="el" href="classPString.html">PString</a> &str, <a class="el" href="classPIntArray.html">PIntArray</a> &starts, <a class="el" href="classPIntArray.html">PIntArray</a> &ends, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_8">Execute</a> (const char *cstr, <a class="el" href="classPIntArray.html">PIntArray</a> &starts, int flags=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z289_9">Execute</a> (const char *cstr, <a class="el" href="classPIntArray.html">PIntArray</a> &starts, <a class="el" href="classPIntArray.html">PIntArray</a> &ends, int flags=0) const</td></tr><tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr><tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#z291_0">EscapeString</a> (const <a class="el" href="classPString.html">PString</a> &str)</td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPString.html">PString</a> </td><td valign=bottom><a class="el" href="classPRegularExpression.html#n0">patternSaved</a></td></tr><tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="classPRegularExpression.html#n1">flagsSaved</a></td></tr><tr><td nowrap align=right valign=top>void * </td><td valign=bottom><a class="el" href="classPRegularExpression.html#n2">expression</a></td></tr><tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="classPRegularExpression.html#n3">lastError</a></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>A class representing a regular expression that may be used for locating patterns in strings. The regular expression string is "compiled" into a form that is more efficient during the matching. This compiled form exists for the lifetime of the PRegularExpression instance. <p><hr><h2>Member Enumeration Documentation</h2><a name="z285_1" doxytag="PRegularExpression::@10"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> anonymous enum </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Flags for execution options.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z285_1s3" doxytag="NotBeginningOfLine"></a><em>NotBeginningOfLine</em></em> </td><td>If this bit is set, then the beginning-of-line operator doesn't match the beginning of the string (presumably because it's not the beginning of a line). If not set, then the beginning-of-line operator does match the beginning of the string. </td></tr><tr><td valign=top><em><a name="z285_1s4" doxytag="NotEndofLine"></a><em>NotEndofLine</em></em> </td><td>Like <a class="el" href="classPRegularExpression.html#z285_1s3">NotBeginningOfLine</a>#, except for the end-of-line. </td></tr></table></dl> </td> </tr></table><a name="z285_0" doxytag="PRegularExpression::@9"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> anonymous enum </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Flags for compiler options.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z285_0s0" doxytag="Extended"></a><em>Extended</em></em> </td><td>Use extended regular expressions.</td></tr><tr><td valign=top><em><a name="z285_0s1" doxytag="IgnoreCase"></a><em>IgnoreCase</em></em> </td><td>Ignore case in search.</td></tr><tr><td valign=top><em><a name="z285_0s2" doxytag="AnchorNewLine"></a><em>AnchorNewLine</em></em> </td><td>If this bit is set, then anchors do not match at newline characters in the string. If not set, then anchors do match at newlines. </td></tr></table></dl> </td> </tr></table><a name="z287_0" doxytag="PRegularExpression::ErrorCodes"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> enum PRegularExpression::ErrorCodes </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Error codes.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z287_0s5" doxytag="NoError"></a><em>NoError</em></em> </td><td>Success.</td></tr><tr><td valign=top><em><a name="z287_0s6" doxytag="NoMatch"></a><em>NoMatch</em></em> </td><td>Didn't find a match (for regexec).</td></tr><tr><td valign=top><em><a name="z287_0s7" doxytag="BadPattern"></a><em>BadPattern</em></em> </td><td>Invalid pattern.</td></tr><tr><td valign=top><em><a name="z287_0s8" doxytag="CollateError"></a><em>CollateError</em></em> </td><td>Not implemented.</td></tr><tr><td valign=top><em><a name="z287_0s9" doxytag="BadClassType"></a><em>BadClassType</em></em> </td><td>Invalid character class name.</td></tr><tr><td valign=top><em><a name="z287_0s10" doxytag="BadEscape"></a><em>BadEscape</em></em> </td><td>Trailing backslash.</td></tr><tr><td valign=top><em><a name="z287_0s11" doxytag="BadSubReg"></a><em>BadSubReg</em></em> </td><td>Invalid back reference.</td></tr><tr><td valign=top><em><a name="z287_0s12" doxytag="UnmatchedBracket"></a><em>UnmatchedBracket</em></em> </td><td>Unmatched left bracket.</td></tr><tr><td valign=top><em><a name="z287_0s13" doxytag="UnmatchedParen"></a><em>UnmatchedParen</em></em> </td><td>Parenthesis imbalance.</td></tr><tr><td valign=top><em><a name="z287_0s14" doxytag="UnmatchedBrace"></a><em>UnmatchedBrace</em></em> </td><td>Unmatched #\{\}#.</td></tr><tr><td valign=top><em><a name="z287_0s15" doxytag="BadBR"></a><em>BadBR</em></em> </td><td>Invalid contents of #\{\}#.</td></tr><tr><td valign=top><em><a name="z287_0s16" doxytag="RangeError"></a><em>RangeError</em></em> </td><td>Invalid range end.</td></tr><tr><td valign=top><em><a name="z287_0s17" doxytag="OutOfMemory"></a><em>OutOfMemory</em></em> </td><td>Ran out of memory.</td></tr><tr><td valign=top><em><a name="z287_0s18" doxytag="BadRepitition"></a><em>BadRepitition</em></em> </td><td>No preceding re for repetition op.</td></tr><tr><td valign=top><em><a name="z287_0s19" doxytag="PrematureEnd"></a><em>PrematureEnd</em></em> </td><td>Premature end.</td></tr><tr><td valign=top><em><a name="z287_0s20" doxytag="TooBig"></a><em>TooBig</em></em> </td><td>Compiled pattern bigger than 2^16 bytes.</td></tr><tr><td valign=top><em><a name="z287_0s21" doxytag="UnmatchedRParen"></a><em>UnmatchedRParen</em></em> </td><td>Unmatched ) or \); not returned from regcomp.</td></tr><tr><td valign=top><em><a name="z287_0s22" doxytag="NotCompiled"></a><em>NotCompiled</em></em> </td><td>Miscellaneous error.</td></tr></table></dl> </td> </tr></table><hr><h2>Constructor & Destructor Documentation</h2><a name="z285_2" doxytag="PRegularExpression::PRegularExpression"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PRegularExpression::PRegularExpression </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Create a new, empty, regular expression.<p> </td> </tr></table><a name="z285_3" doxytag="PRegularExpression::PRegularExpression"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PRegularExpression::PRegularExpression </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classPString.html">PString</a> & </td> <td class="mdname" nowrap> <em>pattern</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>flags</em> = IgnoreCase</td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Create and compile a new regular expression pattern. <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>flags</em> </td><td>Pattern to compile Pattern match options </td></tr></table></dl> </td> </tr></table><a name="z285_4" doxytag="PRegularExpression::PRegularExpression"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PRegularExpression::PRegularExpression </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname" nowrap> <em>cpattern</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>flags</em> = IgnoreCase</td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Create and compile a new regular expression pattern. <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>flags</em> </td><td>Pattern to compile Pattern match options </td></tr></table></dl> </td> </tr></table><a name="z285_5" doxytag="PRegularExpression::PRegularExpression"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PRegularExpression::PRegularExpression </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const PRegularExpression & </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Copy a regular expression </td> </tr></table><a name="z285_7" doxytag="PRegularExpression::~PRegularExpression"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PRegularExpression::~PRegularExpression </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -