Quelle est l'expression régulière permettant de faire correspondre '(' dans une chaîne de caractères ?
Voici le scénario :
J'ai une chaîne
str = "abc(efg)";
Je veux diviser la chaîne de caractères à '('
en utilisant une expression régulière. Pour cela, j'utilise
Arrays.asList(Pattern.compile("/(").split(str))
Mais j'obtiens l'exception suivante.
java.util.regex.PatternSyntaxException: Unclosed group near index 2
/(
Échapper à '('
ne semble pas fonctionner.
1 votes
Vous devez d'abord apprendre les bases de Regex : Wiki Regex o Tutoriels Regex o Regex pour les débutants
9 votes
Essayez
Pattern.quote("(")
ou simplement"\\("
. Notez qu'il y a deux barres obliques inversées - une supplémentaire pour le compilateur Java, afin de comprendre la chaîne correctement. Votre exemple de code utilise une barre oblique, et non une barre oblique inversée. Plus important encore, vous pouvez simplement utiliserstring.split
...0 votes
"\(" a fonctionné pour moi, grâce à @Kobi.