1
+ package com .examplehub .basics .regex ;
2
+
3
+ import org .junit .jupiter .api .Test ;
4
+
5
+ import static org .junit .jupiter .api .Assertions .*;
6
+
7
+ class MatchesExampleTest {
8
+ @ Test
9
+ void testGivenDigits () {
10
+ String regex = "1\\ d{10}" ;
11
+ assertTrue ("12345678910" .matches (regex ));
12
+ assertFalse ("123456789101" .matches (regex ));
13
+ assertTrue ("19999999999" .matches (regex ));
14
+ assertFalse ("09999999999" .matches (regex ));
15
+ assertFalse ("199999d9999" .matches (regex ));
16
+
17
+ assertTrue ("abc" .matches ("abc" ));
18
+ assertFalse ("ABC" .matches ("abc" ));
19
+ assertFalse ("Abc" .matches ("abc" ));
20
+ }
21
+
22
+ @ Test
23
+ void testRangedDigits () {
24
+ String regex = "a\\ d{3,8}" ;
25
+ assertTrue ("a123" .matches (regex ));
26
+ assertTrue ("a1234" .matches (regex ));
27
+ assertTrue ("a1235" .matches (regex ));
28
+ assertTrue ("a12345" .matches (regex ));
29
+ assertTrue ("a123456" .matches (regex ));
30
+ assertTrue ("a12345678" .matches (regex ));
31
+
32
+ assertFalse ("a12" .matches (regex ));
33
+ assertFalse ("a1" .matches (regex ));
34
+ assertFalse ("a" .matches (regex ));
35
+ assertFalse ("a123a5678" .matches (regex ));
36
+ assertFalse ("a123456789" .matches (regex ));
37
+
38
+ regex = "a\\ d{2,}" ;
39
+ assertTrue ("a12" .matches (regex ));
40
+ assertTrue ("a123" .matches (regex ));
41
+ assertTrue ("a1234" .matches (regex ));
42
+ assertTrue ("a12345" .matches (regex ));
43
+ assertTrue ("a123456" .matches (regex ));
44
+ assertTrue ("a12341241234123413521542345326346543745875685698" .matches (regex ));
45
+ }
46
+
47
+ @ Test
48
+ void testDot () {
49
+ String regex = "a.c" ;
50
+ assertTrue ("abc" .matches (regex ));
51
+ assertTrue ("a-c" .matches (regex ));
52
+ assertTrue ("a|c" .matches (regex ));
53
+ assertTrue ("a.c" .matches (regex ));
54
+
55
+ assertFalse ("ac" .matches (regex ));
56
+ assertFalse ("abbc" .matches (regex ));
57
+ }
58
+
59
+ @ Test
60
+ void testDigit () {
61
+ String regex = "00\\ d" ;
62
+ assertTrue ("007" .matches (regex ));
63
+ assertTrue ("009" .matches (regex ));
64
+
65
+ assertFalse ("0000" .matches (regex ));
66
+ assertFalse ("0001" .matches (regex ));
67
+ assertFalse ("00a" .matches (regex ));
68
+ assertFalse ("00A" .matches (regex ));
69
+ }
70
+
71
+ @ Test
72
+ void testNonDigit () {
73
+ String regex = "00\\ D" ;
74
+ assertFalse ("007" .matches (regex ));
75
+ assertFalse ("009" .matches (regex ));
76
+
77
+ assertTrue ("00A" .matches (regex ));
78
+ assertTrue ("00 " .matches (regex ));
79
+ assertTrue ("00a" .matches (regex ));
80
+ assertTrue ("00#" .matches (regex ));
81
+ assertTrue ("00$" .matches (regex ));
82
+ assertTrue ("00\r " .matches (regex ));
83
+ assertTrue ("00\n " .matches (regex ));
84
+ }
85
+
86
+ @ Test
87
+ void testAnyDigit () {
88
+ String regex = "\\ d*" ;
89
+ assertTrue ("" .matches (regex ));
90
+ assertTrue ("1" .matches (regex ));
91
+ assertTrue ("01" .matches (regex ));
92
+ assertTrue ("012" .matches (regex ));
93
+
94
+ assertFalse ("a" .matches (regex ));
95
+ assertFalse ("a0" .matches (regex ));
96
+ assertFalse ("a01" .matches (regex ));
97
+ }
98
+
99
+ @ Test
100
+ void testOneMoreDigits () {
101
+ String regex = "\\ d+" ;
102
+
103
+ assertFalse ("" .matches (regex ));
104
+ assertTrue ("1" .matches (regex ));
105
+ assertTrue ("01" .matches (regex ));
106
+ assertTrue ("012" .matches (regex ));
107
+
108
+ assertFalse ("a" .matches (regex ));
109
+ assertFalse ("a0" .matches (regex ));
110
+ assertFalse ("a01" .matches (regex ));
111
+ }
112
+
113
+
114
+ @ Test
115
+ void testOneOrZeroDigit () {
116
+ String regex = "a\\ d?" ;
117
+
118
+ assertTrue ("a1" .matches (regex ));
119
+ assertTrue ("a" .matches (regex ));
120
+
121
+ assertFalse ("a123" .matches (regex ));
122
+ assertFalse ("ab" .matches (regex ));
123
+ }
124
+
125
+ @ Test
126
+ void testWord () {
127
+ String regex = "java\\ w" ;
128
+ assertTrue ("javac" .matches (regex ));
129
+ assertTrue ("java8" .matches (regex ));
130
+ assertTrue ("java_" .matches (regex ));
131
+
132
+ assertFalse ("javac8" .matches (regex ));
133
+ assertFalse ("java" .matches (regex ));
134
+ assertFalse ("java " .matches (regex ));
135
+ assertFalse ("java$" .matches (regex ));
136
+ assertFalse ("java#" .matches (regex ));
137
+ }
138
+
139
+ @ Test
140
+ void testNonWord () {
141
+ String regex = "java\\ W" ;
142
+ assertFalse ("javac" .matches (regex ));
143
+ assertFalse ("java8" .matches (regex ));
144
+ assertFalse ("java_" .matches (regex ));
145
+ assertFalse ("javac8" .matches (regex ));
146
+ assertFalse ("java" .matches (regex ));
147
+ assertTrue ("java " .matches (regex ));
148
+ assertTrue ("java$" .matches (regex ));
149
+ assertTrue ("java#" .matches (regex ));
150
+ }
151
+
152
+ @ Test
153
+ void testSpace () {
154
+ String regex = "a\\ sc" ;
155
+ assertTrue ("a c" .matches (regex ));
156
+ assertTrue ("a c" .matches (regex ));
157
+ assertFalse ("abc" .matches (regex ));
158
+ assertTrue ("a\r c" .matches (regex ));
159
+ assertTrue ("a\n c" .matches (regex ));
160
+ }
161
+
162
+ @ Test
163
+ void testPhoneNumber () {
164
+ String regex = "[1-9]\\ d{6,7}" ;
165
+ assertTrue ("12345678" .matches (regex ));
166
+ assertTrue ("1234567" .matches (regex ));
167
+ assertFalse ("01234567" .matches (regex ));
168
+ assertFalse ("0123456" .matches (regex ));
169
+ }
170
+
171
+ @ Test
172
+ void testHex () {
173
+ String regex = "[0-9a-fA-F]{4}" ;
174
+ assertTrue ("aF30" .matches (regex ));
175
+ assertTrue ("abcd" .matches (regex ));
176
+ assertTrue ("ABCD" .matches (regex ));
177
+ assertTrue ("1234" .matches (regex ));
178
+ }
179
+
180
+ @ Test
181
+ void testExclude () {
182
+ String regex = "[^1-9]{3}" ;
183
+ assertTrue ("A00" .matches (regex ));
184
+ assertTrue ("ABC" .matches (regex ));
185
+ assertFalse ("A01" .matches (regex ));
186
+ assertFalse ("A05" .matches (regex ));
187
+ }
188
+
189
+ @ Test
190
+ void testOr () {
191
+ String regex = "java|python" ;
192
+ assertTrue ("java" .matches (regex ));
193
+ assertTrue ("python" .matches (regex ));
194
+ assertFalse ("go" .matches (regex ));
195
+
196
+ regex = "learn\\ s([jJ]ava|[pP]ython)" ;
197
+ assertTrue ("learn java" .matches (regex ));
198
+ assertTrue ("learn python" .matches (regex ));
199
+ assertFalse ("learn go" .matches (regex ));
200
+
201
+ assertTrue ("learn Java" .matches (regex ));
202
+ assertTrue ("learn Python" .matches (regex ));
203
+ }
204
+ }
0 commit comments