ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzaie_5.4.0.1/rzaieregexpnot.htm

259 lines
14 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="topic" />
<meta name="DC.Title" content="Regular expression notation for HTTP Server" />
<meta name="abstract" content="This topic provides a general overview of regular expression notation." />
<meta name="description" content="This topic provides a general overview of regular expression notation." />
<meta name="DC.Relation" scheme="URI" content="rzaieprogramming.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2002,2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2002,2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzaieregexpnot" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Regular expression notation for HTTP Server</title>
</head>
<body id="rzaieregexpnot"><a name="rzaieregexpnot"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Regular expression notation for HTTP Server</h1>
<div><p>This topic provides a general overview of regular expression notation.</p>
<div class="important"><span class="importanttitle">Important:</span> Information
for this topic supports the latest PTF levels for HTTP Server for i5/OS .
It is recommended that you install the latest PTFs to upgrade to the latest
level of the HTTP Server for i5/OS. Some of the topics documented here are
not available prior to this update. See <a href="http://www-03.ibm.com/servers/eserver/iseries/software/http/services/service.html" target="_blank">http://www.ibm.com/servers/eserver/iseries/software/http/services/service.htm</a> <img src="www.gif" alt="Link outside Information Center" /> for more information. </div>
<p>A regular expression notation specifies a pattern of character strings.
One or more regular expressions can be used to create a matching pattern.
Certain characters (sometimes called wildcards) have special meanings. The
table below describes the pattern matching scheme. </p>
<p><strong>Regular expression pattern matching </strong> </p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" width="21.21212121212121%" id="d0e34">Pattern</th>
<th valign="top" width="78.78787878787878%" id="d0e36">Description</th>
</tr>
</thead>
<tbody><tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>string </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p> string with no special characters matches the values
that contain the string. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>[set] </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match a single character specified by the set of
single characters within the square brackets. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>[a-z] </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match a character in the range specified within the
square brackets. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>[^abc] </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match any single character not specified in the set
of single characters within the square brackets. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>{n} </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match exactly n times. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>{n,} </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match at least n times. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>{n,m} </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match at least n times, but no more than m times. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>^ </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match the start of the string. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>$</tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match the end of the string. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>. </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match any character (except Newline). </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>* </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match zero or more of preceding character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>+ </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match one or more of preceding character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>? </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match one or zero of preceding character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>string1|string2</tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match string1 or string2. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\ </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Signifies an escape character. When preceding any
of the characters that have special meaning, the escape character removes
any special meaning from the character. For example, the backslash is useful
to remove special meaning from a period in an IP address. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>(group) </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Group a character in a regular expression. If a match
is found the first group can be accessed using $1. The second group can be
accessed using $2 and so on. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\w </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match an alphanumeric character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\s </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Match a white-space character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\t </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Tab character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\n</tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Newline character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\r </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Return character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\f </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Form feed character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\v </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Vertical tab character.</p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\a </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Bell character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\e </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Escape character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\Onn </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Octal character, for example \O76. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\xnn </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Hex character, for example \xff. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\cn </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Control character, for example \c[. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\l </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Lowercase next character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\L </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Lowercase until \E. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\u </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Uppercase next character. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\U </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Uppercase until \E.</p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\E </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>End modification. </p>
</td>
</tr>
<tr><td valign="top" width="21.21212121212121%" headers="d0e34 "><tt>\Q </tt></td>
<td valign="top" width="78.78787878787878%" headers="d0e36 "><p>Quote until \E. </p>
</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Examples of regular expression pattern matching </strong></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" width="21.31979695431472%" id="d0e286">Pattern</th>
<th valign="top" width="78.68020304568529%" id="d0e288">Examples of strings that match</th>
</tr>
</thead>
<tbody><tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>ibm </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm01, myibm, aibmbc</tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^ibm$ </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^ibm0[0-4][0-9]$ </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm000 through ibm049 </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>ibm[3-8] </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm3, myibm4, aibm5b </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^ibm </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm01, ibm </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>ibm$ </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>myibm, ibm, 3ibm </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>ibm... </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm123, myibmabc, aibm09bcd </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>ibm*1</tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm1, myibm1, aibm1abc, ibmkkkkk12 </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^ibm0.. </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm001, ibm099, ibm0abcd </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^ibm0..$ </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>ibm001, ibm099 </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>10.2.1.9 </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>10.2.1.9, 10.2.139.6, 10.231.98.6 </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^10\.2\.1\.9$ </tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>10.2.1.9 </tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^10\.2\.1\.1[0-5]$</tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><tt>10.2.1.10, 10.2.1.11, 10.2.1.12, 10.2.1.13, 10.2.1.14,
10.2.1.15</tt></td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^192.\.168\..*\..*$</tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><p>(All addresses on class B subnet 192.168.0.0) </p>
</td>
</tr>
<tr><td valign="top" width="21.31979695431472%" headers="d0e286 "><tt>^192.\.168\.10\..*$</tt></td>
<td valign="top" width="78.68020304568529%" headers="d0e288 "><p>(All addresses on class C subnet 192.168.10.0) </p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzaieprogramming.htm" title="This topic provides information on CGI, directives, APIs, and other programming topics.">Programming</a></div>
</div>
</div>
</body>
</html>