Skip to content

Commit e98c8e1

Browse files
regex match (examplehub#178)
1 parent 05f542a commit e98c8e1

File tree

2 files changed

+208
-0
lines changed

2 files changed

+208
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.examplehub.basics.regex;
2+
3+
public class MatchesExample {
4+
}
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
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\rc".matches(regex));
159+
assertTrue("a\nc".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

Comments
 (0)