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