1
1
import java .util .regex .Pattern ;
2
2
3
- class VerbalExpressions {
3
+ class VerbalExpression {
4
4
private String prefixes , source , suffixes , pattern = "" ;
5
- int modifiers = Pattern .MULTILINE ;
6
- Pattern p ;
7
-
8
- public VerbalExpressions () {
9
-
10
- }
5
+ private int modifiers = Pattern .MULTILINE ;
11
6
12
7
private String sanitize (String value ) {
13
8
if (value == null )
14
9
return value ;
15
10
return Pattern .quote (value );
16
11
}
17
12
18
- public VerbalExpressions add (String value ) {
13
+ public VerbalExpression add (String value ) {
19
14
this .source = this .source != null ? this .source + value : value ;
20
15
if (this .source != null ) {
21
- this . p = Pattern .compile (this .prefixes + this .source + this .suffixes , this .modifiers );
22
- this .pattern = this . p .pattern ();
16
+ Pattern p = Pattern .compile (this .prefixes + this .source + this .suffixes , this .modifiers );
17
+ this .pattern = p .pattern ();
23
18
}
24
19
return this ;
25
20
}
26
21
27
- public VerbalExpressions startOfLine (boolean enable ) {
22
+ public VerbalExpression startOfLine (boolean enable ) {
28
23
this .prefixes = enable ? "^" : "" ;
29
- this .add ( "" );
24
+ this .add ("" );
30
25
return this ;
31
26
}
32
27
33
- public VerbalExpressions startOfLine () {
28
+ public VerbalExpression startOfLine () {
34
29
return startOfLine (true );
35
30
}
36
31
37
- public VerbalExpressions endOfLine (boolean enable ) {
32
+ public VerbalExpression endOfLine (boolean enable ) {
38
33
this .suffixes = enable ? "$" : "" ;
39
- this .add ( "" );
34
+ this .add ("" );
40
35
return this ;
41
36
}
42
37
43
- public VerbalExpressions endOfLine () {
38
+ public VerbalExpression endOfLine () {
44
39
return endOfLine (true );
45
40
}
46
41
47
- public VerbalExpressions then (String value ) {
42
+ public VerbalExpression then (String value ) {
48
43
value = sanitize (value );
49
- this .add ( "(" + value + ")" );
44
+ this .add ("(" + value + ")" );
50
45
return this ;
51
46
}
52
47
53
- public VerbalExpressions find (String value ) {
48
+ public VerbalExpression find (String value ) {
54
49
this .then (value );
55
50
return this ;
56
51
}
57
52
58
- public VerbalExpressions maybe (String value ) {
53
+ public VerbalExpression maybe (String value ) {
59
54
value = sanitize (value );
60
- this .add ( "(" + value + ")?" );
55
+ this .add ("(" + value + ")?" );
61
56
return this ;
62
57
}
63
58
64
- public VerbalExpressions anything () {
65
- this .add ( "(.*)" );
59
+ public VerbalExpression anything () {
60
+ this .add ("(.*)" );
66
61
return this ;
67
62
}
68
63
69
- public VerbalExpressions anythingBut (String value ) {
64
+ public VerbalExpression anythingBut (String value ) {
70
65
value = sanitize (value );
71
- this .add ( "([^" + value + "]*)" );
66
+ this .add ("([^" + value + "]*)" );
72
67
return this ;
73
68
}
74
69
75
- public VerbalExpressions something () {
76
- this .add ( "(.+)" );
70
+ public VerbalExpression something () {
71
+ this .add ("(.+)" );
77
72
return this ;
78
73
}
79
74
80
- public VerbalExpressions somethingBut (String value ) {
75
+ public VerbalExpression somethingBut (String value ) {
81
76
value = sanitize (value );
82
- this .add ( "([^" + value + "]+)" );
77
+ this .add ("([^" + value + "]+)" );
83
78
return this ;
84
79
}
85
80
86
- public VerbalExpressions replace (String source , String value ) {
87
- this .add ( "" );
81
+ public VerbalExpression replace (String source , String value ) {
82
+ this .add ("" );
88
83
this .source .replaceAll (pattern ,value );
89
84
return this ;
90
85
}
91
86
92
- public VerbalExpressions lineBreak () {
93
- this .add ( "(\\ n|(\\ r\\ n))" );
87
+ public VerbalExpression lineBreak () {
88
+ this .add ("(\\ n|(\\ r\\ n))" );
94
89
return this ;
95
90
}
96
91
97
- public VerbalExpressions br () {
92
+ public VerbalExpression br () {
98
93
this .lineBreak ();
99
94
return this ;
100
95
}
101
96
102
- public VerbalExpressions tab () {
103
- this .add ( "\\ t" );
97
+ public VerbalExpression tab () {
98
+ this .add ("\\ t" );
104
99
return this ;
105
100
}
106
101
107
- public VerbalExpressions word () {
108
- this .add ( "\\ w+" );
102
+ public VerbalExpression word () {
103
+ this .add ("\\ w+" );
109
104
return this ;
110
105
}
111
106
112
- public VerbalExpressions anyOf (String value ) {
107
+ public VerbalExpression anyOf (String value ) {
113
108
value = sanitize (value );
114
- this .add ( "[" + value + "]" );
109
+ this .add ("[" + value + "]" );
115
110
return this ;
116
111
}
117
112
118
- public VerbalExpressions any (String value ) {
113
+ public VerbalExpression any (String value ) {
119
114
this .anyOf (value );
120
115
return this ;
121
116
}
122
117
123
- public VerbalExpressions range (Object [] args ) {
118
+ public VerbalExpression range (Object [] args ) {
124
119
String value = "[" ;
125
120
for (int _from = 0 ; _from < args .length ; _from += 2 ) {
126
121
int _to = _from +1 ;
@@ -137,7 +132,7 @@ public VerbalExpressions range(Object[] args) {
137
132
return this ;
138
133
}
139
134
140
- public VerbalExpressions addModifier (char modifier ) {
135
+ public VerbalExpression addModifier (char modifier ) {
141
136
switch (modifier ) {
142
137
case 'd' :
143
138
modifiers |= Pattern .UNIX_LINES ;
@@ -164,11 +159,11 @@ public VerbalExpressions addModifier(char modifier) {
164
159
break ;
165
160
}
166
161
167
- this .add ( "" );
162
+ this .add ("" );
168
163
return this ;
169
164
}
170
165
171
- public VerbalExpressions removeModifier (char modifier ) {
166
+ public VerbalExpression removeModifier (char modifier ) {
172
167
switch (modifier ) {
173
168
case 'd' :
174
169
modifiers ^= Pattern .UNIX_LINES ;
@@ -195,29 +190,29 @@ public VerbalExpressions removeModifier(char modifier) {
195
190
break ;
196
191
}
197
192
198
- this .add ( "" );
193
+ this .add ("" );
199
194
return this ;
200
195
}
201
196
202
- public VerbalExpressions withAnyCase (boolean enable ) {
197
+ public VerbalExpression withAnyCase (boolean enable ) {
203
198
if (enable ) this .addModifier ( 'i' );
204
199
else this .removeModifier ( 'i' );
205
- this .add ( "" );
200
+ this .add ("" );
206
201
return this ;
207
202
}
208
203
209
- public VerbalExpressions withAnyCase () {
204
+ public VerbalExpression withAnyCase () {
210
205
return withAnyCase (true );
211
206
}
212
207
213
- public VerbalExpressions searchOneLine (boolean enable ) {
208
+ public VerbalExpression searchOneLine (boolean enable ) {
214
209
if (enable ) this .removeModifier ( 'm' );
215
210
else this .addModifier ( 'm' );
216
- this .add ( "" );
211
+ this .add ("" );
217
212
return this ;
218
213
}
219
214
220
- public VerbalExpressions multiple (String value ) {
215
+ public VerbalExpression multiple (String value ) {
221
216
value = this .sanitize (value );
222
217
switch (value .charAt (0 )) {
223
218
case '*' :
@@ -230,22 +225,22 @@ public VerbalExpressions multiple(String value) {
230
225
return this ;
231
226
}
232
227
233
- public VerbalExpressions or (String value ) {
228
+ public VerbalExpression or (String value ) {
234
229
if (this .prefixes .indexOf ("(" ) == -1 ) this .prefixes += "(" ;
235
230
if (this .suffixes .indexOf (")" ) == -1 ) this .suffixes = ")" + this .suffixes ;
236
231
237
- this .add ( ")|(" );
232
+ this .add (")|(" );
238
233
if (value != null ) this .then (value );
239
234
return this ;
240
235
}
241
236
242
237
public boolean test (String toTest ) {
243
- this .add ( "" );
238
+ this .add ("" );
244
239
return Pattern .matches (this .pattern , toTest );
245
240
}
246
241
247
242
public String toString () {
248
- this .add ( "" );
243
+ this .add ("" );
249
244
return this .pattern .toString ();
250
245
}
251
246
}
0 commit comments