/[pcre]/code/tags/pcre-7.7/pcredemo.c
ViewVC logotype

Diff of /code/tags/pcre-7.7/pcredemo.c

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

revision 75 by nigel, Sat Feb 24 21:40:37 2007 UTC revision 315 by ph10, Fri Jan 25 17:23:16 2008 UTC
# Line 4  Line 4 
4    
5  /* This is a demonstration program to illustrate the most straightforward ways  /* This is a demonstration program to illustrate the most straightforward ways
6  of calling the PCRE regular expression library from a C program. See the  of calling the PCRE regular expression library from a C program. See the
7  pcresample documentation for a short discussion.  pcresample documentation for a short discussion ("man pcresample" if you have
8    the PCRE man pages installed).
9    
10    In Unix-like environments, compile this program thuswise:
11    
 Compile thuswise:  
12    gcc -Wall pcredemo.c -I/usr/local/include -L/usr/local/lib \    gcc -Wall pcredemo.c -I/usr/local/include -L/usr/local/lib \
13      -R/usr/local/lib -lpcre      -R/usr/local/lib -lpcre
14    
15  Replace "/usr/local/include" and "/usr/local/lib" with wherever the include and  Replace "/usr/local/include" and "/usr/local/lib" with wherever the include and
16  library files for PCRE are installed on your system. Only some operating  library files for PCRE are installed on your system. You don't need -I and -L
17    if PCRE is installed in the standard system libraries. Only some operating
18  systems (e.g. Solaris) use the -R option.  systems (e.g. Solaris) use the -R option.
 */  
19    
20    Building under Windows:
21    
22    If you want to statically link this program against a non-dll .a file, you must
23    define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc() and
24    pcre_free() exported functions will be declared __declspec(dllimport), with
25    unwanted results. So in this environment, uncomment the following line. */
26    
27    /* #define PCRE_STATIC */
28    
29  #include <stdio.h>  #include <stdio.h>
30  #include <string.h>  #include <string.h>
# Line 117  if (rc < 0) Line 127  if (rc < 0)
127      */      */
128      default: printf("Matching error %d\n", rc); break;      default: printf("Matching error %d\n", rc); break;
129      }      }
130    free(re);     /* Release memory used for the compiled pattern */    pcre_free(re);     /* Release memory used for the compiled pattern */
131    return 1;    return 1;
132    }    }
133    
# Line 128  printf("\nMatch succeeded at offset %d\n Line 138  printf("\nMatch succeeded at offset %d\n
138    
139  /*************************************************************************  /*************************************************************************
140  * We have found the first match within the subject string. If the output *  * We have found the first match within the subject string. If the output *
141  * vector wasn't big enough, set its size to the maximum. Then output any *  * vector wasn't big enough, say so. Then output any substrings that were *
142  * substrings that were captured.                                         *  * captured.                                                              *
143  *************************************************************************/  *************************************************************************/
144    
145  /* The output vector wasn't big enough */  /* The output vector wasn't big enough */
# Line 154  for (i = 0; i < rc; i++) Line 164  for (i = 0; i < rc; i++)
164  /**************************************************************************  /**************************************************************************
165  * That concludes the basic part of this demonstration program. We have    *  * That concludes the basic part of this demonstration program. We have    *
166  * compiled a pattern, and performed a single match. The code that follows *  * compiled a pattern, and performed a single match. The code that follows *
167  * first shows how to access named substrings, and then how to code for    *  * shows first how to access named substrings, and then how to code for    *
168  * repeated matches on the same subject.                                   *  * repeated matches on the same subject.                                   *
169  **************************************************************************/  **************************************************************************/
170    
# Line 223  if (namecount <= 0) printf("No named sub Line 233  if (namecount <= 0) printf("No named sub
233    
234  if (!find_all)  if (!find_all)
235    {    {
236    free(re);   /* Release the memory used for the compiled pattern */    pcre_free(re);   /* Release the memory used for the compiled pattern */
237    return 0;   /* Finish unless -g was given */    return 0;        /* Finish unless -g was given */
238    }    }
239    
240  /* Loop for second and subsequent matches */  /* Loop for second and subsequent matches */
# Line 276  for (;;) Line 286  for (;;)
286    if (rc < 0)    if (rc < 0)
287      {      {
288      printf("Matching error %d\n", rc);      printf("Matching error %d\n", rc);
289      free(re);    /* Release memory used for the compiled pattern */      pcre_free(re);    /* Release memory used for the compiled pattern */
290      return 1;      return 1;
291      }      }
292    
# Line 317  for (;;) Line 327  for (;;)
327    }      /* End of loop to find second and subsequent matches */    }      /* End of loop to find second and subsequent matches */
328    
329  printf("\n");  printf("\n");
330  free(re);       /* Release memory used for the compiled pattern */  pcre_free(re);       /* Release memory used for the compiled pattern */
331  return 0;  return 0;
332  }  }
333    

Legend:
Removed from v.75  
changed lines
  Added in v.315

  ViewVC Help
Powered by ViewVC 1.1.5