Blame


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