Remove obsolete include.
This commit is contained in:
		| @@ -1,321 +0,0 @@ | |||||||
| .\" Copyright (c) 1991, 1993 |  | ||||||
| .\"	The Regents of the University of California.  All rights reserved. |  | ||||||
| .\" |  | ||||||
| .\" Redistribution and use in source and binary forms, with or without |  | ||||||
| .\" modification, are permitted provided that the following conditions |  | ||||||
| .\" are met: |  | ||||||
| .\" 1. Redistributions of source code must retain the above copyright |  | ||||||
| .\"    notice, this list of conditions and the following disclaimer. |  | ||||||
| .\" 2. Redistributions in binary form must reproduce the above copyright |  | ||||||
| .\"    notice, this list of conditions and the following disclaimer in the |  | ||||||
| .\"    documentation and/or other materials provided with the distribution. |  | ||||||
| .\" 3. All advertising materials mentioning features or use of this software |  | ||||||
| .\"    must display the following acknowledgement: |  | ||||||
| .\"	This product includes software developed by the University of |  | ||||||
| .\"	California, Berkeley and its contributors. |  | ||||||
| .\" 4. Neither the name of the University nor the names of its contributors |  | ||||||
| .\"    may be used to endorse or promote products derived from this software |  | ||||||
| .\"    without specific prior written permission. |  | ||||||
| .\" |  | ||||||
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |  | ||||||
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | ||||||
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |  | ||||||
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |  | ||||||
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |  | ||||||
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | ||||||
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |  | ||||||
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |  | ||||||
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |  | ||||||
| .\" SUCH DAMAGE. |  | ||||||
| .\" |  | ||||||
| .\"     @(#)regexp.3	8.1 (Berkeley) 6/4/93 |  | ||||||
| .\" |  | ||||||
| .Dd June 4, 1993 |  | ||||||
| .Dt REGEXP 3 |  | ||||||
| .Os |  | ||||||
| .Sh NAME |  | ||||||
| .Nm regcomp , |  | ||||||
| .Nm regexec , |  | ||||||
| .Nm regsub , |  | ||||||
| .Nm regerror |  | ||||||
| .Nd regular expression handlers |  | ||||||
| .Sh SYNOPSIS |  | ||||||
| .Fd #include <regexp.h> |  | ||||||
| .Ft regexp * |  | ||||||
| .Fn regcomp "const char *exp" |  | ||||||
| .Ft int |  | ||||||
| .Fn regexec "const regexp *prog" "const char *string" |  | ||||||
| .Ft void |  | ||||||
| .Fn regsub "const regexp *prog" "const char *source" "char *dest" |  | ||||||
| .Sh DESCRIPTION |  | ||||||
| .Bf -symbolic |  | ||||||
| This interface is made obsolete by |  | ||||||
| .Xr regex 3 . |  | ||||||
| It is available from the compatibility library, libcompat. |  | ||||||
| .Ef |  | ||||||
| .Pp |  | ||||||
| The |  | ||||||
| .Fn regcomp , |  | ||||||
| .Fn regexec , |  | ||||||
| .Fn regsub , |  | ||||||
| and |  | ||||||
| .Fn regerror |  | ||||||
| functions |  | ||||||
| implement |  | ||||||
| .Xr egrep 1 Ns -style |  | ||||||
| regular expressions and supporting facilities. |  | ||||||
| .Pp |  | ||||||
| The |  | ||||||
| .Fn regcomp |  | ||||||
| function |  | ||||||
| compiles a regular expression into a structure of type |  | ||||||
| .Xr regexp , |  | ||||||
| and returns a pointer to it. |  | ||||||
| The space has been allocated using |  | ||||||
| .Xr malloc 3 |  | ||||||
| and may be released by |  | ||||||
| .Xr free . |  | ||||||
| .Pp |  | ||||||
| The |  | ||||||
| .Fn regexec |  | ||||||
| function |  | ||||||
| matches a |  | ||||||
| .Dv NUL Ns -terminated |  | ||||||
| .Fa string |  | ||||||
| against the compiled regular expression |  | ||||||
| in |  | ||||||
| .Fa prog . |  | ||||||
| It returns 1 for success and 0 for failure, and adjusts the contents of |  | ||||||
| .Fa prog Ns 's |  | ||||||
| .Em startp |  | ||||||
| and |  | ||||||
| .Em endp |  | ||||||
| (see below) accordingly. |  | ||||||
| .Pp |  | ||||||
| The members of a |  | ||||||
| .Xr regexp |  | ||||||
| structure include at least the following (not necessarily in order): |  | ||||||
| .Bd -literal -offset indent |  | ||||||
| char *startp[NSUBEXP]; |  | ||||||
| char *endp[NSUBEXP]; |  | ||||||
| .Ed |  | ||||||
| .Pp |  | ||||||
| where |  | ||||||
| .Dv NSUBEXP |  | ||||||
| is defined (as 10) in the header file. |  | ||||||
| Once a successful |  | ||||||
| .Fn regexec |  | ||||||
| has been done using the |  | ||||||
| .Fn regexp , |  | ||||||
| each |  | ||||||
| .Em startp Ns - Em endp |  | ||||||
| pair describes one substring |  | ||||||
| within the |  | ||||||
| .Fa string , |  | ||||||
| with the |  | ||||||
| .Em startp |  | ||||||
| pointing to the first character of the substring and |  | ||||||
| the |  | ||||||
| .Em endp |  | ||||||
| pointing to the first character following the substring. |  | ||||||
| The 0th substring is the substring of |  | ||||||
| .Fa string |  | ||||||
| that matched the whole |  | ||||||
| regular expression. |  | ||||||
| The others are those substrings that matched parenthesized expressions |  | ||||||
| within the regular expression, with parenthesized expressions numbered |  | ||||||
| in left-to-right order of their opening parentheses. |  | ||||||
| .Pp |  | ||||||
| The |  | ||||||
| .Fn regsub |  | ||||||
| function |  | ||||||
| copies |  | ||||||
| .Fa source |  | ||||||
| to |  | ||||||
| .Fa dest , |  | ||||||
| making substitutions according to the |  | ||||||
| most recent |  | ||||||
| .Fn regexec |  | ||||||
| performed using |  | ||||||
| .Fa prog . |  | ||||||
| Each instance of `&' in |  | ||||||
| .Fa source |  | ||||||
| is replaced by the substring |  | ||||||
| indicated by |  | ||||||
| .Em startp Ns Bq |  | ||||||
| and |  | ||||||
| .Em endp Ns Bq . |  | ||||||
| Each instance of |  | ||||||
| .Sq \e Ns Em n , |  | ||||||
| where |  | ||||||
| .Em n |  | ||||||
| is a digit, is replaced by |  | ||||||
| the substring indicated by |  | ||||||
| .Em startp Ns Bq Em n |  | ||||||
| and |  | ||||||
| .Em endp Ns Bq Em n . |  | ||||||
| To get a literal `&' or |  | ||||||
| .Sq \e Ns Em n |  | ||||||
| into |  | ||||||
| .Fa dest , |  | ||||||
| prefix it with `\e'; |  | ||||||
| to get a literal `\e' preceding `&' or |  | ||||||
| .Sq \e Ns Em n , |  | ||||||
| prefix it with |  | ||||||
| another `\e'. |  | ||||||
| .Pp |  | ||||||
| The |  | ||||||
| .Fn regerror |  | ||||||
| function |  | ||||||
| is called whenever an error is detected in |  | ||||||
| .Fn regcomp , |  | ||||||
| .Fn regexec , |  | ||||||
| or |  | ||||||
| .Fn regsub . |  | ||||||
| The default |  | ||||||
| .Fn regerror |  | ||||||
| writes the string |  | ||||||
| .Fa msg , |  | ||||||
| with a suitable indicator of origin, |  | ||||||
| on the standard |  | ||||||
| error output |  | ||||||
| and invokes |  | ||||||
| .Xr exit 2 . |  | ||||||
| The |  | ||||||
| .Fn regerror |  | ||||||
| function |  | ||||||
| can be replaced by the user if other actions are desirable. |  | ||||||
| .Sh REGULAR EXPRESSION SYNTAX |  | ||||||
| A regular expression is zero or more |  | ||||||
| .Em branches , |  | ||||||
| separated by `|'. |  | ||||||
| It matches anything that matches one of the branches. |  | ||||||
| .Pp |  | ||||||
| A branch is zero or more |  | ||||||
| .Em pieces , |  | ||||||
| concatenated. |  | ||||||
| It matches a match for the first, followed by a match for the second, etc. |  | ||||||
| .Pp |  | ||||||
| A piece is an |  | ||||||
| .Em atom |  | ||||||
| possibly followed by `*', `+', or `?'. |  | ||||||
| An atom followed by `*' matches a sequence of 0 or more matches of the atom. |  | ||||||
| An atom followed by `+' matches a sequence of 1 or more matches of the atom. |  | ||||||
| An atom followed by `?' matches a match of the atom, or the null string. |  | ||||||
| .Pp |  | ||||||
| An atom is a regular expression in parentheses (matching a match for the |  | ||||||
| regular expression), a |  | ||||||
| .Em range |  | ||||||
| (see below), `.' |  | ||||||
| (matching any single character), `^' (matching the null string at the |  | ||||||
| beginning of the input string), `$' (matching the null string at the |  | ||||||
| end of the input string), a `\e' followed by a single character (matching |  | ||||||
| that character), or a single character with no other significance |  | ||||||
| (matching that character). |  | ||||||
| .Pp |  | ||||||
| A |  | ||||||
| .Em range |  | ||||||
| is a sequence of characters enclosed in `[]'. |  | ||||||
| It normally matches any single character from the sequence. |  | ||||||
| If the sequence begins with `^', |  | ||||||
| it matches any single character |  | ||||||
| .Em not |  | ||||||
| from the rest of the sequence. |  | ||||||
| If two characters in the sequence are separated by `\-', this is shorthand |  | ||||||
| for the full list of |  | ||||||
| .Tn ASCII |  | ||||||
| characters between them |  | ||||||
| (e.g. `[0-9]' matches any decimal digit). |  | ||||||
| To include a literal `]' in the sequence, make it the first character |  | ||||||
| (following a possible `^'). |  | ||||||
| To include a literal `\-', make it the first or last character. |  | ||||||
| .Sh AMBIGUITY |  | ||||||
| If a regular expression could match two different parts of the input string, |  | ||||||
| it will match the one which begins earliest. |  | ||||||
| If both begin in the same place but match different lengths, or match |  | ||||||
| the same length in different ways, life gets messier, as follows. |  | ||||||
| .Pp |  | ||||||
| In general, the possibilities in a list of branches are considered in |  | ||||||
| left-to-right order, the possibilities for `*', `+', and `?' are |  | ||||||
| considered longest-first, nested constructs are considered from the |  | ||||||
| outermost in, and concatenated constructs are considered leftmost-first. |  | ||||||
| The match that will be chosen is the one that uses the earliest |  | ||||||
| possibility in the first choice that has to be made. |  | ||||||
| If there is more than one choice, the next will be made in the same manner |  | ||||||
| (earliest possibility) subject to the decision on the first choice. |  | ||||||
| And so forth. |  | ||||||
| .Pp |  | ||||||
| For example, |  | ||||||
| .Sq Li (ab|a)b*c |  | ||||||
| could match |  | ||||||
| `abc' in one of two ways. |  | ||||||
| The first choice is between `ab' and `a'; since `ab' is earlier, and does |  | ||||||
| lead to a successful overall match, it is chosen. |  | ||||||
| Since the `b' is already spoken for, |  | ||||||
| the `b*' must match its last possibility\(emthe empty string\(emsince |  | ||||||
| it must respect the earlier choice. |  | ||||||
| .Pp |  | ||||||
| In the particular case where no `|'s are present and there is only one |  | ||||||
| `*', `+', or `?', the net effect is that the longest possible |  | ||||||
| match will be chosen. |  | ||||||
| So |  | ||||||
| .Sq Li ab* , |  | ||||||
| presented with `xabbbby', will match `abbbb'. |  | ||||||
| Note that if |  | ||||||
| .Sq Li ab* , |  | ||||||
| is tried against `xabyabbbz', it |  | ||||||
| will match `ab' just after `x', due to the begins-earliest rule. |  | ||||||
| (In effect, the decision on where to start the match is the first choice |  | ||||||
| to be made, hence subsequent choices must respect it even if this leads them |  | ||||||
| to less-preferred alternatives.) |  | ||||||
| .Sh RETURN VALUES |  | ||||||
| The |  | ||||||
| .Fn regcomp |  | ||||||
| function |  | ||||||
| returns |  | ||||||
| .Dv NULL |  | ||||||
| for a failure |  | ||||||
| .Pf ( Fn regerror |  | ||||||
| permitting), |  | ||||||
| where failures are syntax errors, exceeding implementation limits, |  | ||||||
| or applying `+' or `*' to a possibly-null operand. |  | ||||||
| .Sh SEE ALSO |  | ||||||
| .Xr ed 1 , |  | ||||||
| .Xr ex 1 , |  | ||||||
| .Xr expr 1 , |  | ||||||
| .Xr egrep 1 , |  | ||||||
| .Xr fgrep 1 , |  | ||||||
| .Xr grep 1 , |  | ||||||
| .Xr regex 3 |  | ||||||
| .Sh HISTORY |  | ||||||
| Both code and manual page for |  | ||||||
| .Fn regcomp , |  | ||||||
| .Fn regexec , |  | ||||||
| .Fn regsub , |  | ||||||
| and |  | ||||||
| .Fn regerror |  | ||||||
| were written at the University of Toronto |  | ||||||
| and appeared in |  | ||||||
| .Bx 4.3 tahoe . |  | ||||||
| They are intended to be compatible with the Bell V8 |  | ||||||
| .Xr regexp 3 , |  | ||||||
| but are not derived from Bell code. |  | ||||||
| .Sh BUGS |  | ||||||
| Empty branches and empty regular expressions are not portable to V8. |  | ||||||
| .Pp |  | ||||||
| The restriction against |  | ||||||
| applying `*' or `+' to a possibly-null operand is an artifact of the |  | ||||||
| simplistic implementation. |  | ||||||
| .Pp |  | ||||||
| Does not support |  | ||||||
| .Xr egrep Ns 's |  | ||||||
| newline-separated branches; |  | ||||||
| neither does the V8 |  | ||||||
| .Xr regexp 3 , |  | ||||||
| though. |  | ||||||
| .Pp |  | ||||||
| Due to emphasis on |  | ||||||
| compactness and simplicity, |  | ||||||
| it's not strikingly fast. |  | ||||||
| It does give special attention to handling simple cases quickly. |  | ||||||
		Reference in New Issue
	
	Block a user