📄 glib-perl-compatible-regular-expressions.html
字号:
<p>When matching a pattern, "\n" matches only against a "\n" character in thestring, and "\r" matches only a "\r" character. To match any newline sequenceuse "\R". This particular group matches either the two-character sequenceCR + LF ("\r\n"), or one of the single characters LF (linefeed, U+000A, "\n"), VT(vertical tab, U+000B, "\v"), FF (formfeed, U+000C, "\f"), CR (carriage return,U+000D, "\r"), NEL (next line, U+0085), LS (line separator, U+2028), or PS(paragraph separator, U+2029).</p><p>The behaviour of the dot, circumflex, and dollar metacharacters are affected bynewline characters, the default is to recognize any newline character (the samecharacters recognized by "\R"). This can be changed with <a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-NEWLINE-CR:CAPS"><span class="type">G_REGEX_NEWLINE_CR</span></a>,<a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-NEWLINE-LF:CAPS"><span class="type">G_REGEX_NEWLINE_LF</span></a> and <a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-NEWLINE-CRLF:CAPS"><span class="type">G_REGEX_NEWLINE_CRLF</span></a> compile options,and with <a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-MATCH-NEWLINE-ANY:CAPS"><span class="type">G_REGEX_MATCH_NEWLINE_ANY</span></a>, <a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-MATCH-NEWLINE-CR:CAPS"><span class="type">G_REGEX_MATCH_NEWLINE_CR</span></a>,<a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-MATCH-NEWLINE-LF:CAPS"><span class="type">G_REGEX_MATCH_NEWLINE_LF</span></a> and <a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-MATCH-NEWLINE-CRLF:CAPS"><span class="type">G_REGEX_MATCH_NEWLINE_CRLF</span></a> match options.These settings are also relevant when compiling a pattern if<a class="link" href="glib-Perl-compatible-regular-expressions.html#G-REGEX-EXTENDED:CAPS"><span class="type">G_REGEX_EXTENDED</span></a> is set, and an unescaped "#" outside a character class isencountered. This indicates a comment that lasts until after the nextnewline.</p><p>Creating and manipulating the same <a class="link" href="glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a> structure from differentthreads is not a problem as <a class="link" href="glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a> does not modify its internalstate between creation and destruction, on the other hand <a class="link" href="glib-Perl-compatible-regular-expressions.html#GMatchInfo"><span class="type">GMatchInfo</span></a> isnot threadsafe.</p><p>The regular expressions low level functionalities are obtained throughthe excellent <a class="ulink" href="http://www.pcre.org/" target="_top">PCRE</a> librarywritten by Philip Hazel.</p></div><div class="refsect1" lang="en"><a name="id3144440"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3144450"></a><h3><a name="GRegexError"></a>enum GRegexError</h3><a class="indexterm" name="id3144465"></a><pre class="programlisting">typedef enum{ G_REGEX_ERROR_COMPILE, G_REGEX_ERROR_OPTIMIZE, G_REGEX_ERROR_REPLACE, G_REGEX_ERROR_MATCH, G_REGEX_ERROR_INTERNAL, /* These are the error codes from PCRE + 100 */ G_REGEX_ERROR_STRAY_BACKSLASH = 101, G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102, G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103, G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104, G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105, G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106, G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107, G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108, G_REGEX_ERROR_NOTHING_TO_REPEAT = 109, G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112, G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113, G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114, G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115, G_REGEX_ERROR_UNTERMINATED_COMMENT = 118, G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120, G_REGEX_ERROR_MEMORY_ERROR = 121, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125, G_REGEX_ERROR_MALFORMED_CONDITION = 126, G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127, G_REGEX_ERROR_ASSERTION_EXPECTED = 128, G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130, G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131, G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134, G_REGEX_ERROR_INVALID_CONDITION = 135, G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136, G_REGEX_ERROR_INFINITE_LOOP = 140, G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142, G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143, G_REGEX_ERROR_MALFORMED_PROPERTY = 146, G_REGEX_ERROR_UNKNOWN_PROPERTY = 147, G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148, G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149, G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151, G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154, G_REGEX_ERROR_DEFINE_REPETION = 155, G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156, G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157} GRegexError;</pre><p>Error codes returned by regular expressions functions.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><a name="G-REGEX-ERROR-COMPILE:CAPS"></a><code class="literal">G_REGEX_ERROR_COMPILE</code></span></p></td><td>Compilation of the regular expression failed.</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-OPTIMIZE:CAPS"></a><code class="literal">G_REGEX_ERROR_OPTIMIZE</code></span></p></td><td>Optimization of the regular expression failed.</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-REPLACE:CAPS"></a><code class="literal">G_REGEX_ERROR_REPLACE</code></span></p></td><td>Replacement failed due to an ill-formed replacement string.</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-MATCH:CAPS"></a><code class="literal">G_REGEX_ERROR_MATCH</code></span></p></td><td>The match process failed.</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-INTERNAL:CAPS"></a><code class="literal">G_REGEX_ERROR_INTERNAL</code></span></p></td><td>Internal error of the regular expression engine. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-STRAY-BACKSLASH:CAPS"></a><code class="literal">G_REGEX_ERROR_STRAY_BACKSLASH</code></span></p></td><td>"\\" at end of pattern. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-MISSING-CONTROL-CHAR:CAPS"></a><code class="literal">G_REGEX_ERROR_MISSING_CONTROL_CHAR</code></span></p></td><td>"\\c" at end of pattern. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-UNRECOGNIZED-ESCAPE:CAPS"></a><code class="literal">G_REGEX_ERROR_UNRECOGNIZED_ESCAPE</code></span></p></td><td>Unrecognized character follows "\\". Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-QUANTIFIERS-OUT-OF-ORDER:CAPS"></a><code class="literal">G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER</code></span></p></td><td>Numbers out of order in "{}" quantifier. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-QUANTIFIER-TOO-BIG:CAPS"></a><code class="literal">G_REGEX_ERROR_QUANTIFIER_TOO_BIG</code></span></p></td><td>Number too big in "{}" quantifier. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-UNTERMINATED-CHARACTER-CLASS:CAPS"></a><code class="literal">G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS</code></span></p></td><td>Missing terminating "]" for character class. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-INVALID-ESCAPE-IN-CHARACTER-CLASS:CAPS"></a><code class="literal">G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS</code></span></p></td><td>Invalid escape sequence in character class. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-RANGE-OUT-OF-ORDER:CAPS"></a><code class="literal">G_REGEX_ERROR_RANGE_OUT_OF_ORDER</code></span></p></td><td>Range out of order in character class. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-NOTHING-TO-REPEAT:CAPS"></a><code class="literal">G_REGEX_ERROR_NOTHING_TO_REPEAT</code></span></p></td><td>Nothing to repeat. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-UNRECOGNIZED-CHARACTER:CAPS"></a><code class="literal">G_REGEX_ERROR_UNRECOGNIZED_CHARACTER</code></span></p></td><td>Unrecognized character after "(?", "(?<" or "(?P". Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-POSIX-NAMED-CLASS-OUTSIDE-CLASS:CAPS"></a><code class="literal">G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS</code></span></p></td><td>POSIX named classes are supported only within a class. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-UNMATCHED-PARENTHESIS:CAPS"></a><code class="literal">G_REGEX_ERROR_UNMATCHED_PARENTHESIS</code></span></p></td><td>Missing terminating ")" or ")" without opening "(". Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-INEXISTENT-SUBPATTERN-REFERENCE:CAPS"></a><code class="literal">G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE</code></span></p></td><td>Reference to non-existent subpattern. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-UNTERMINATED-COMMENT:CAPS"></a><code class="literal">G_REGEX_ERROR_UNTERMINATED_COMMENT</code></span></p></td><td>Missing terminating ")" after comment. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-EXPRESSION-TOO-LARGE:CAPS"></a><code class="literal">G_REGEX_ERROR_EXPRESSION_TOO_LARGE</code></span></p></td><td>Regular expression too large. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-MEMORY-ERROR:CAPS"></a><code class="literal">G_REGEX_ERROR_MEMORY_ERROR</code></span></p></td><td>Failed to get memory. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-VARIABLE-LENGTH-LOOKBEHIND:CAPS"></a><code class="literal">G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND</code></span></p></td><td>Lookbehind assertion is not fixed length. Since 2.16</td></tr><tr><td><p><span class="term"><a name="G-REGEX-ERROR-MALFORMED-CONDITION:CAPS"></a><code class="literal">G_REGEX_ERROR_MALFORMED_CONDITION</code></span></p></td><td>Malformed number or name after "(?(". Since 2.16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -