1371 |
.rs |
.rs |
1372 |
.sp |
.sp |
1373 |
The subject string is passed to \fBpcre_exec()\fP as a pointer in |
The subject string is passed to \fBpcre_exec()\fP as a pointer in |
1374 |
\fIsubject\fP, a length in \fIlength\fP, and a starting byte offset in |
\fIsubject\fP, a length (in bytes) in \fIlength\fP, and a starting byte offset |
1375 |
\fIstartoffset\fP. In UTF-8 mode, the byte offset must point to the start of a |
in \fIstartoffset\fP. In UTF-8 mode, the byte offset must point to the start of |
1376 |
UTF-8 character. Unlike the pattern string, the subject may contain binary zero |
a UTF-8 character. Unlike the pattern string, the subject may contain binary |
1377 |
bytes. When the starting offset is zero, the search for a match starts at the |
zero bytes. When the starting offset is zero, the search for a match starts at |
1378 |
beginning of the subject, and this is by far the most common case. |
the beginning of the subject, and this is by far the most common case. |
1379 |
.P |
.P |
1380 |
A non-zero starting offset is useful when searching for another match in the |
A non-zero starting offset is useful when searching for another match in the |
1381 |
same subject by calling \fBpcre_exec()\fP again after a previous success. |
same subject by calling \fBpcre_exec()\fP again after a previous success. |
1409 |
a fragment of a pattern that picks out a substring. PCRE supports several other |
a fragment of a pattern that picks out a substring. PCRE supports several other |
1410 |
kinds of parenthesized subpattern that do not cause substrings to be captured. |
kinds of parenthesized subpattern that do not cause substrings to be captured. |
1411 |
.P |
.P |
1412 |
Captured substrings are returned to the caller via a vector of integer offsets |
Captured substrings are returned to the caller via a vector of integers whose |
1413 |
whose address is passed in \fIovector\fP. The number of elements in the vector |
address is passed in \fIovector\fP. The number of elements in the vector is |
1414 |
is passed in \fIovecsize\fP, which must be a non-negative number. \fBNote\fP: |
passed in \fIovecsize\fP, which must be a non-negative number. \fBNote\fP: this |
1415 |
this argument is NOT the size of \fIovector\fP in bytes. |
argument is NOT the size of \fIovector\fP in bytes. |
1416 |
.P |
.P |
1417 |
The first two-thirds of the vector is used to pass back captured substrings, |
The first two-thirds of the vector is used to pass back captured substrings, |
1418 |
each substring using a pair of integers. The remaining third of the vector is |
each substring using a pair of integers. The remaining third of the vector is |
1419 |
used as workspace by \fBpcre_exec()\fP while matching capturing subpatterns, |
used as workspace by \fBpcre_exec()\fP while matching capturing subpatterns, |
1420 |
and is not available for passing back information. The length passed in |
and is not available for passing back information. The number passed in |
1421 |
\fIovecsize\fP should always be a multiple of three. If it is not, it is |
\fIovecsize\fP should always be a multiple of three. If it is not, it is |
1422 |
rounded down. |
rounded down. |
1423 |
.P |
.P |
1424 |
When a match is successful, information about captured substrings is returned |
When a match is successful, information about captured substrings is returned |
1425 |
in pairs of integers, starting at the beginning of \fIovector\fP, and |
in pairs of integers, starting at the beginning of \fIovector\fP, and |
1426 |
continuing up to two-thirds of its length at the most. The first element of a |
continuing up to two-thirds of its length at the most. The first element of |
1427 |
pair is set to the offset of the first character in a substring, and the second |
each pair is set to the byte offset of the first character in a substring, and |
1428 |
is set to the offset of the first character after the end of a substring. The |
the second is set to the byte offset of the first character after the end of a |
1429 |
first pair, \fIovector[0]\fP and \fIovector[1]\fP, identify the portion of the |
substring. \fBNote\fP: these values are always byte offsets, even in UTF-8 |
1430 |
subject string matched by the entire pattern. The next pair is used for the |
mode. They are not character counts. |
1431 |
first capturing subpattern, and so on. The value returned by \fBpcre_exec()\fP |
.P |
1432 |
is one more than the highest numbered pair that has been set. For example, if |
The first pair of integers, \fIovector[0]\fP and \fIovector[1]\fP, identify the |
1433 |
two substrings have been captured, the returned value is 3. If there are no |
portion of the subject string matched by the entire pattern. The next pair is |
1434 |
capturing subpatterns, the return value from a successful match is 1, |
used for the first capturing subpattern, and so on. The value returned by |
1435 |
indicating that just the first pair of offsets has been set. |
\fBpcre_exec()\fP is one more than the highest numbered pair that has been set. |
1436 |
|
For example, if two substrings have been captured, the returned value is 3. If |
1437 |
|
there are no capturing subpatterns, the return value from a successful match is |
1438 |
|
1, indicating that just the first pair of offsets has been set. |
1439 |
.P |
.P |
1440 |
If a capturing subpattern is matched repeatedly, it is the last portion of the |
If a capturing subpattern is matched repeatedly, it is the last portion of the |
1441 |
string that it matched that is returned. |
string that it matched that is returned. |
1442 |
.P |
.P |
1443 |
If the vector is too small to hold all the captured substring offsets, it is |
If the vector is too small to hold all the captured substring offsets, it is |
1444 |
used as far as possible (up to two-thirds of its length), and the function |
used as far as possible (up to two-thirds of its length), and the function |
1445 |
returns a value of zero. In particular, if the substring offsets are not of |
returns a value of zero. If the substring offsets are not of interest, |
1446 |
interest, \fBpcre_exec()\fP may be called with \fIovector\fP passed as NULL and |
\fBpcre_exec()\fP may be called with \fIovector\fP passed as NULL and |
1447 |
\fIovecsize\fP as zero. However, if the pattern contains back references and |
\fIovecsize\fP as zero. However, if the pattern contains back references and |
1448 |
the \fIovector\fP is not big enough to remember the related substrings, PCRE |
the \fIovector\fP is not big enough to remember the related substrings, PCRE |
1449 |
has to get additional memory for use during matching. Thus it is usually |
has to get additional memory for use during matching. Thus it is usually |
1978 |
.rs |
.rs |
1979 |
.sp |
.sp |
1980 |
.nf |
.nf |
1981 |
Last updated: 12 April 2008 |
Last updated: 24 August 2008 |
1982 |
Copyright (c) 1997-2008 University of Cambridge. |
Copyright (c) 1997-2008 University of Cambridge. |
1983 |
.fi |
.fi |