Skip to content

Commit e98c8e1

Browse files
regex match (#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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy