/[pcre]/code/trunk/doc/pcrepartial.3
ViewVC logotype

Diff of /code/trunk/doc/pcrepartial.3

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 87 by nigel, Sat Feb 24 21:41:21 2007 UTC revision 93 by nigel, Sat Feb 24 21:41:42 2007 UTC
# Line 95  uses the date example quoted above: Line 95  uses the date example quoted above:
95  .sp  .sp
96  The first data string is matched completely, so \fBpcretest\fP shows the  The first data string is matched completely, so \fBpcretest\fP shows the
97  matched substrings. The remaining four strings do not match the complete  matched substrings. The remaining four strings do not match the complete
98  pattern, but the first two are partial matches. The same test, using DFA  pattern, but the first two are partial matches. The same test, using
99  matching (by means of the \eD escape sequence), produces the following output:  \fBpcre_dfa_exec()\fP matching (by means of the \eD escape sequence), produces
100    the following output:
101  .sp  .sp
102      re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$/      re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$/
103    data> 25jun04\eP\eD    data> 25jun04\eP\eD
# Line 119  available. Line 120  available.
120  .sp  .sp
121  When a partial match has been found using \fBpcre_dfa_exec()\fP, it is possible  When a partial match has been found using \fBpcre_dfa_exec()\fP, it is possible
122  to continue the match by providing additional subject data and calling  to continue the match by providing additional subject data and calling
123  \fBpcre_dfa_exec()\fP again with the PCRE_DFA_RESTART option and the same  \fBpcre_dfa_exec()\fP again with the same compiled regular expression, this
124  working space (where details of the previous partial match are stored). Here is  time setting the PCRE_DFA_RESTART option. You must also pass the same working
125  an example using \fBpcretest\fP, where the \eR escape sequence sets the  space as before, because this is where details of the previous partial match
126  PCRE_DFA_RESTART option and the \eD escape sequence requests the use of  are stored. Here is an example using \fBpcretest\fP, using the \eR escape
127  \fBpcre_dfa_exec()\fP:  sequence to set the PCRE_DFA_RESTART option (\eP and \eD are as above):
128  .sp  .sp
129      re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$/      re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$/
130    data> 23ja\eP\eD    data> 23ja\eP\eD
# Line 137  Notice that when the match is complete, Line 138  Notice that when the match is complete,
138  not retain the previously partially-matched string. It is up to the calling  not retain the previously partially-matched string. It is up to the calling
139  program to do that if it needs to.  program to do that if it needs to.
140  .P  .P
141  This facility can be used to pass very long subject strings to  You can set PCRE_PARTIAL with PCRE_DFA_RESTART to continue partial matching
142  \fBpcre_dfa_exec()\fP. However, some care is needed for certain types of  over multiple segments. This facility can be used to pass very long subject
143  pattern.  strings to \fBpcre_dfa_exec()\fP. However, some care is needed for certain
144    types of pattern.
145  .P  .P
146  1. If the pattern contains tests for the beginning or end of a line, you need  1. If the pattern contains tests for the beginning or end of a line, you need
147  to pass the PCRE_NOTBOL or PCRE_NOTEOL options, as appropriate, when the  to pass the PCRE_NOTBOL or PCRE_NOTEOL options, as appropriate, when the
# Line 147  subject string for any call does not con Line 149  subject string for any call does not con
149  .P  .P
150  2. If the pattern contains backward assertions (including \eb or \eB), you need  2. If the pattern contains backward assertions (including \eb or \eB), you need
151  to arrange for some overlap in the subject strings to allow for this. For  to arrange for some overlap in the subject strings to allow for this. For
152  example, you could pass the subject in chunks that were 500 bytes long, but in  example, you could pass the subject in chunks that are 500 bytes long, but in
153  a buffer of 700 bytes, with the starting offset set to 200 and the previous 200  a buffer of 700 bytes, with the starting offset set to 200 and the previous 200
154  bytes at the start of the buffer.  bytes at the start of the buffer.
155  .P  .P
# Line 198  where no string can be a partial match f Line 200  where no string can be a partial match f
200  .  .
201  .P  .P
202  .in 0  .in 0
203  Last updated: 16 January 2006  Last updated: 30 November 2006
204  .br  .br
205  Copyright (c) 1997-2006 University of Cambridge.  Copyright (c) 1997-2006 University of Cambridge.

Legend:
Removed from v.87  
changed lines
  Added in v.93

  ViewVC Help
Powered by ViewVC 1.1.5