Missing closing bracket in character class near index 13 |\?*<":>+[]/' My code:
Pattern.compile("|\\?*<\":>+[]/'").matcher(name).matches()
Missing closing bracket in character class near index 13 |\?*<":>+[]/' My code:
Pattern.compile("|\\?*<\":>+[]/'").matcher(name).matches()
You may use
Pattern.compile("[|\\\\?*<\":>+\\[\\]/']+").matcher(name).matches()
The regex means:
[
- start of a positive character class:
|
- a pipe\\
- a backslash (requires additional backslashes in the string literal, "\\\\"
)?
- a question mark*
- an asterisk<
- an open angle bracket"
- a double quotationmark:
- a colon >
- a close angle bracket +
- a plus \[
- a [
char (must be escaped when [
is inside a character class)\]
- a ]
char (must be escaped when ]
is inside a character class)/
- a forward slash'
- a single quotation mark ]+
- end of character class, 1 or more occurrences.So, this will validate a string that only consists of 1 or more occurrences of these chars. If you need the opposite, add ^
after the first [
:
Pattern.compile("[^|\\\\?*<\":>+\\[\\]/']+").matcher(name).matches()
// ^
String name = "Wiktor Stribiżew";
System.out.println(Pattern.compile("[^|\\\\?*<\":>+\\[\\]/']+").matcher(name).matches());
// => true