En RegEx, comment sélectionner tout ce qui n'est pas entre parenthèses:RegEx, sélectionnez tout ce qui n'est pas entre parenthèses
E.g.
Xxxxxxx (01010101)
retournerait Xxxxxxx
?
Merci!
En RegEx, comment sélectionner tout ce qui n'est pas entre parenthèses:RegEx, sélectionnez tout ce qui n'est pas entre parenthèses
E.g.
Xxxxxxx (01010101)
retournerait Xxxxxxx
?
Merci!
Pour l'échantillon existant, cela va faire:
(.+) \(
Utilisez \([^)]*\)
comme séparateur, soit dans split
, ou un java.util.Scanner
, etc, ou tout simplement l'utiliser pour remplacer par ""
.
En Java:
System.out.println(Arrays.toString(
"abc(xyz)def(123)".split("\\([^)]*\\)"))
); // prints "[abc, def]"
System.out.println(
"abc(xyz)def(123)".replaceAll("\\([^)]*\\)", "")
); // prints "abcdef"
En Python:
import re
def removeparens(inputstring):
return re.sub(r"\([^)]*\)", "", inputstring)
fournira cette fonctionnalité sous la condition que parens ne sont jamais imbriquées.
vous pouvez toujours * supprimer * tout ce qui correspond à '\ ([^)] + \)' –
@David: '\\ ([^)] + \\)' est nécessaire - SO le formatage des commentaires a évidemment supprimé le barres obliques ... –
@Smickie: S'il vous plaît fournir plus d'exemples. La question la plus importante est: Est-ce que les parens peuvent être imbriqués? Avec l'imbrication arbitraire comme 'Keep this (supprimer ceci (et ceci (et ceci aussi)))' une solution regex est impossible dans la plupart des implémentations regex. –