EN
Java regex word boundary with special characters at the beginning or end of regex (dot, plus, underscore, dash)
6 points
In this article we would like to show you how to use regex word boundary in java with special characters at the beginning or end of regex.
Practical examples:
xxxxxxxxxx
1
import org.junit.Test;
2
3
import java.util.regex.Matcher;
4
import java.util.regex.Pattern;
5
6
import static org.assertj.core.api.Assertions.assertThat;
7
8
public class RegexWordBoundaryTests {
9
10
11
public void regexWordBoundaryTest1() {
12
Pattern pattern = Pattern.compile("\\.NET", Pattern.CASE_INSENSITIVE);
13
Matcher matcher = pattern.matcher(".NET");
14
assertThat(matcher.find()).isTrue();
15
assertThat(matcher.group()).isEqualTo(".NET");
16
}
17
18
19
public void regexWordBoundaryTest2() {
20
Pattern pattern = Pattern.compile("\\.\\bNET\\b", Pattern.CASE_INSENSITIVE);
21
Matcher matcher = pattern.matcher(".NET");
22
assertThat(matcher.find()).isTrue();
23
assertThat(matcher.group()).isEqualTo(".NET");
24
}
25
26
27
public void regexWordBoundaryTest3() {
28
// if word starts with '.' and ends with '.'
29
Pattern pattern = Pattern.compile("\\.\\bNET\\b\\.", Pattern.CASE_INSENSITIVE);
30
Matcher matcher = pattern.matcher("test .NET. test");
31
assertThat(matcher.find()).isTrue();
32
assertThat(matcher.group()).isEqualTo(".NET.");
33
}
34
35
36
public void regexWordBoundaryTest4() {
37
Pattern pattern = Pattern.compile("\\bC\\b#", Pattern.CASE_INSENSITIVE);
38
Matcher matcher = pattern.matcher("test C# test");
39
assertThat(matcher.find()).isTrue();
40
assertThat(matcher.group()).isEqualTo("C#");
41
}
42
43
44
public void regexWordBoundaryTest5() {
45
Pattern pattern = Pattern.compile("\\bC-sharp\\b", Pattern.CASE_INSENSITIVE);
46
Matcher matcher = pattern.matcher("test C-sharp test");
47
assertThat(matcher.find()).isTrue();
48
assertThat(matcher.group()).isEqualTo("C-sharp");
49
}
50
51
52
public void regexWordBoundaryTest6() {
53
Pattern pattern = Pattern.compile("\\bC_sharp\\b", Pattern.CASE_INSENSITIVE);
54
Matcher matcher = pattern.matcher("test C_sharp test");
55
assertThat(matcher.find()).isTrue();
56
assertThat(matcher.group()).isEqualTo("C_sharp");
57
}
58
59
60
public void regexWordBoundaryTest7() {
61
Pattern pattern = Pattern.compile("\\bnode\\.js\\b", Pattern.CASE_INSENSITIVE);
62
Matcher matcher = pattern.matcher("test node.js test");
63
assertThat(matcher.find()).isTrue();
64
assertThat(matcher.group()).isEqualTo("node.js");
65
}
66
67
68
public void regexWordBoundaryTest8() {
69
// if word starts with '-'
70
Pattern pattern = Pattern.compile("-\\bnode\\b", Pattern.CASE_INSENSITIVE);
71
Matcher matcher = pattern.matcher("test -node test");
72
assertThat(matcher.find()).isTrue();
73
assertThat(matcher.group()).isEqualTo("-node");
74
}
75
76
77
public void regexWordBoundaryTest9() {
78
// if word starts with '-'
79
Pattern pattern = Pattern.compile("\\bC\\b\\+\\+", Pattern.CASE_INSENSITIVE);
80
Matcher matcher = pattern.matcher("test C++ test");
81
assertThat(matcher.find()).isTrue();
82
assertThat(matcher.group()).isEqualTo("C++");
83
}
84
85
86
public void regexWordBoundaryTest10() {
87
Pattern pattern = Pattern.compile("\\bC/C\\b\\+\\+", Pattern.CASE_INSENSITIVE);
88
Matcher matcher = pattern.matcher("test C/C++ test");
89
assertThat(matcher.find()).isTrue();
90
assertThat(matcher.group()).isEqualTo("C/C++");
91
}
92
93
94
public void regexWordBoundaryTest11() {
95
Pattern pattern = Pattern.compile("\\bC/Cpp\\b", Pattern.CASE_INSENSITIVE);
96
Matcher matcher = pattern.matcher("test C/Cpp test");
97
assertThat(matcher.find()).isTrue();
98
assertThat(matcher.group()).isEqualTo("C/Cpp");
99
}
100
}
Result, all tests passed: