Regular Expression for matching parentheses
Two options:
Firstly, you can escape it using a backslash -- \(
Alternatively, since it's a single character, you can put it in a character class, where it doesn't need to be escaped -- [(]
- You can escape any meta-character by using a backslash, so you can match
(
with the pattern\(
. - Many languages come with a build-in escaping function, for example, .Net's
Regex.Escape
or Java'sPattern.quote
- Some flavors support
\Q
and\E
, with literal text between them. - Some flavors (VIM, for example) match
(
literally, and require\(
for capturing groups.
See also: Regular Expression Basic Syntax Reference
The solution consists in a regex pattern matching open and closing parenthesis
String str = "Your(String)";
// parameter inside split method is the pattern that matches opened and closed parenthesis,
// that means all characters inside "[ ]" escaping parenthesis with "\\" -> "[\\(\\)]"
String[] parts = str.split("[\\(\\)]");
for (String part : parts) {
// I print first "Your", in the second round trip "String"
System.out.println(part);
}
Writing in Java 8's style, this can be solved in this way:
Arrays.asList("Your(String)".split("[\\(\\)]"))
.forEach(System.out::println);
I hope it is clear.
For any special characters you should use '\'. So, for matching parentheses - /\(/