Blame


1 78e51a8c 2005-01-14 devnull .TH REGEXP9 7
2 78e51a8c 2005-01-14 devnull .SH NAME
3 78e51a8c 2005-01-14 devnull regexp \- Plan 9 regular expression notation
4 78e51a8c 2005-01-14 devnull .SH DESCRIPTION
5 78e51a8c 2005-01-14 devnull This manual page describes the regular expression
6 78e51a8c 2005-01-14 devnull syntax used by the Plan 9 regular expression library
7 78e51a8c 2005-01-14 devnull .IR regexp9 (3).
8 78e51a8c 2005-01-14 devnull It is the form used by
9 78e51a8c 2005-01-14 devnull .IR egrep (1)
10 78e51a8c 2005-01-14 devnull before
11 78e51a8c 2005-01-14 devnull .I egrep
12 78e51a8c 2005-01-14 devnull got complicated.
13 78e51a8c 2005-01-14 devnull .PP
14 78e51a8c 2005-01-14 devnull A
15 78e51a8c 2005-01-14 devnull .I "regular expression"
16 78e51a8c 2005-01-14 devnull specifies
17 78e51a8c 2005-01-14 devnull a set of strings of characters.
18 78e51a8c 2005-01-14 devnull A member of this set of strings is said to be
19 78e51a8c 2005-01-14 devnull .I matched
20 78e51a8c 2005-01-14 devnull by the regular expression. In many applications
21 78e51a8c 2005-01-14 devnull a delimiter character, commonly
22 78e51a8c 2005-01-14 devnull .LR / ,
23 78e51a8c 2005-01-14 devnull bounds a regular expression.
24 78e51a8c 2005-01-14 devnull In the following specification for regular expressions
25 78e51a8c 2005-01-14 devnull the word `character' means any character (rune) but newline.
26 78e51a8c 2005-01-14 devnull .PP
27 78e51a8c 2005-01-14 devnull The syntax for a regular expression
28 78e51a8c 2005-01-14 devnull .B e0
29 78e51a8c 2005-01-14 devnull is
30 78e51a8c 2005-01-14 devnull .IP
31 78e51a8c 2005-01-14 devnull .EX
32 78e51a8c 2005-01-14 devnull e3: literal | charclass | '.' | '^' | '$' | '(' e0 ')'
33 78e51a8c 2005-01-14 devnull
34 78e51a8c 2005-01-14 devnull e2: e3
35 78e51a8c 2005-01-14 devnull | e2 REP
36 78e51a8c 2005-01-14 devnull
37 78e51a8c 2005-01-14 devnull REP: '*' | '+' | '?'
38 78e51a8c 2005-01-14 devnull
39 78e51a8c 2005-01-14 devnull e1: e2
40 78e51a8c 2005-01-14 devnull | e1 e2
41 78e51a8c 2005-01-14 devnull
42 78e51a8c 2005-01-14 devnull e0: e1
43 78e51a8c 2005-01-14 devnull | e0 '|' e1
44 78e51a8c 2005-01-14 devnull .EE
45 78e51a8c 2005-01-14 devnull .PP
46 78e51a8c 2005-01-14 devnull A
47 78e51a8c 2005-01-14 devnull .B literal
48 78e51a8c 2005-01-14 devnull is any non-metacharacter, or a metacharacter
49 78e51a8c 2005-01-14 devnull (one of
50 78e51a8c 2005-01-14 devnull .BR .*+?[]()|\e^$ ),
51 78e51a8c 2005-01-14 devnull or the delimiter
52 78e51a8c 2005-01-14 devnull preceded by
53 78e51a8c 2005-01-14 devnull .LR \e .
54 78e51a8c 2005-01-14 devnull .PP
55 78e51a8c 2005-01-14 devnull A
56 78e51a8c 2005-01-14 devnull .B charclass
57 78e51a8c 2005-01-14 devnull is a nonempty string
58 78e51a8c 2005-01-14 devnull .I s
59 78e51a8c 2005-01-14 devnull bracketed
60 78e51a8c 2005-01-14 devnull .BI [ \|s\| ]
61 78e51a8c 2005-01-14 devnull (or
62 78e51a8c 2005-01-14 devnull .BI [^ s\| ]\fR);
63 78e51a8c 2005-01-14 devnull it matches any character in (or not in)
64 78e51a8c 2005-01-14 devnull .IR s .
65 78e51a8c 2005-01-14 devnull A negated character class never
66 78e51a8c 2005-01-14 devnull matches newline.
67 78e51a8c 2005-01-14 devnull A substring
68 78e51a8c 2005-01-14 devnull .IB a - b\f1,
69 78e51a8c 2005-01-14 devnull with
70 78e51a8c 2005-01-14 devnull .I a
71 78e51a8c 2005-01-14 devnull and
72 78e51a8c 2005-01-14 devnull .I b
73 78e51a8c 2005-01-14 devnull in ascending
74 78e51a8c 2005-01-14 devnull order, stands for the inclusive
75 78e51a8c 2005-01-14 devnull range of
76 78e51a8c 2005-01-14 devnull characters between
77 78e51a8c 2005-01-14 devnull .I a
78 78e51a8c 2005-01-14 devnull and
79 78e51a8c 2005-01-14 devnull .IR b .
80 78e51a8c 2005-01-14 devnull In
81 78e51a8c 2005-01-14 devnull .IR s ,
82 78e51a8c 2005-01-14 devnull the metacharacters
83 78e51a8c 2005-01-14 devnull .LR - ,
84 78e51a8c 2005-01-14 devnull .LR ] ,
85 78e51a8c 2005-01-14 devnull an initial
86 78e51a8c 2005-01-14 devnull .LR ^ ,
87 78e51a8c 2005-01-14 devnull and the regular expression delimiter
88 78e51a8c 2005-01-14 devnull must be preceded by a
89 78e51a8c 2005-01-14 devnull .LR \e ;
90 78e51a8c 2005-01-14 devnull other metacharacters
91 78e51a8c 2005-01-14 devnull have no special meaning and
92 78e51a8c 2005-01-14 devnull may appear unescaped.
93 78e51a8c 2005-01-14 devnull .PP
94 78e51a8c 2005-01-14 devnull A
95 78e51a8c 2005-01-14 devnull .L .
96 78e51a8c 2005-01-14 devnull matches any character.
97 78e51a8c 2005-01-14 devnull .PP
98 78e51a8c 2005-01-14 devnull A
99 78e51a8c 2005-01-14 devnull .L ^
100 78e51a8c 2005-01-14 devnull matches the beginning of a line;
101 78e51a8c 2005-01-14 devnull .L $
102 78e51a8c 2005-01-14 devnull matches the end of the line.
103 78e51a8c 2005-01-14 devnull .PP
104 78e51a8c 2005-01-14 devnull The
105 78e51a8c 2005-01-14 devnull .B REP
106 78e51a8c 2005-01-14 devnull operators match zero or more
107 78e51a8c 2005-01-14 devnull .RB ( * ),
108 78e51a8c 2005-01-14 devnull one or more
109 78e51a8c 2005-01-14 devnull .RB ( + ),
110 78e51a8c 2005-01-14 devnull zero or one
111 78e51a8c 2005-01-14 devnull .RB ( ? ),
112 78e51a8c 2005-01-14 devnull instances respectively of the preceding regular expression
113 78e51a8c 2005-01-14 devnull .BR e2 .
114 78e51a8c 2005-01-14 devnull .PP
115 78e51a8c 2005-01-14 devnull A concatenated regular expression,
116 78e51a8c 2005-01-14 devnull .BR "e1\|e2" ,
117 78e51a8c 2005-01-14 devnull matches a match to
118 78e51a8c 2005-01-14 devnull .B e1
119 78e51a8c 2005-01-14 devnull followed by a match to
120 78e51a8c 2005-01-14 devnull .BR e2 .
121 78e51a8c 2005-01-14 devnull .PP
122 78e51a8c 2005-01-14 devnull An alternative regular expression,
123 78e51a8c 2005-01-14 devnull .BR "e0\||\|e1" ,
124 78e51a8c 2005-01-14 devnull matches either a match to
125 78e51a8c 2005-01-14 devnull .B e0
126 78e51a8c 2005-01-14 devnull or a match to
127 78e51a8c 2005-01-14 devnull .BR e1 .
128 78e51a8c 2005-01-14 devnull .PP
129 78e51a8c 2005-01-14 devnull A match to any part of a regular expression
130 78e51a8c 2005-01-14 devnull extends as far as possible without preventing
131 78e51a8c 2005-01-14 devnull a match to the remainder of the regular expression.
132 78e51a8c 2005-01-14 devnull .SH "SEE ALSO
133 78e51a8c 2005-01-14 devnull .IR regexp9 (3)