the regular need to escape the character: ' $ ', '(', ') ', ' * ', ' + ', '. ', '[', '] ', '? ', ' \ \', ' ^ ', '{ /c10>', '} ', ' | '
Abnormal phenomenon:java.util.regex.PatternSyntaxException:Dangling Meta. Character ' * ' near index 0workaround : multibyte \ Escape for special characters.
Note: Although it is possible to use [] under some conditions, the following will be reported in the case where the (, [, {range boundary start character does not match):Abnormal phenomenon: Java.util.regex.PatternSyntaxException:Illegal repetition near Index 50
the Java filter Regular expression special word code is as follows (note: \ \ requires the first substitution, otherwise the Replace method will have a logical bug)
/** * escapes the regular special character ($ () *+. []?\^{},|] * * @param keyword * @return */public static string Escapeexprspecialword (string keyword) {if (stringutils. Isnotblank (keyword)) {string[] Fbsarr = {"\ \", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|"; for (String Key:fbsarr) {if (Keyword.contains (key)) {keyword = keyword.replace (key, "\ \" + key);}}} return keyword;}
Java processing Regular expression special character escapes