Résolu Regex pour supprimer un bloc entre parenthèse
- Guardiola gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 229
- Remerciements reçus 0
il y a 2 ans 6 mois - il y a 2 ans 6 mois #30883
par Guardiola gabriel
Regex pour supprimer un bloc entre parenthèse a été créé par Guardiola gabriel
Hello
j'ai un ensemble de fichiers à renommer et je cherche à supprimer des blocs de chaine entre parenthèse (tout en laissant d'autres chaines de caractères entre parenthèse)
voici les lignes, je veux supprimer "(hoho-Empire)"
bon j'ai bidouillé cela, mais c'est visiblement un poil violent:
de ce que je comprends la regex, qui va de gauche à droite, prend la première parenthèse jusqu'à "Empire)" et donc prend "(2020) (digital) (hoho-Empire)"
Evidement j'ai n'importe quelle chaine de caractères et longueur entre "(" et "empire)" mais je veux garder (2020) et (digital)
un gentil powershelleur qui est à l'aise avec les Regex pour éclairer ma lanterne de noob en Regex?
j'ai un ensemble de fichiers à renommer et je cherche à supprimer des blocs de chaine entre parenthèse (tout en laissant d'autres chaines de caractères entre parenthèse)
voici les lignes, je veux supprimer "(hoho-Empire)"
"this is a test (2020) (digital) (hoho-Empire)"
bon j'ai bidouillé cela, mais c'est visiblement un poil violent:
PS C:\> "this is a test (2020) (digital) (hoho-Empire)" -replace "\(.+empire\)",""
this is a test
de ce que je comprends la regex, qui va de gauche à droite, prend la première parenthèse jusqu'à "Empire)" et donc prend "(2020) (digital) (hoho-Empire)"
Evidement j'ai n'importe quelle chaine de caractères et longueur entre "(" et "empire)" mais je veux garder (2020) et (digital)
"this is a test (2020) (digital) (hoho-Empire)"
"this is a test (2020) (digital) (ho123-Empire)"
"this is a test (2020) (digital) (honianuhvdfuysdg-Empire)"
un gentil powershelleur qui est à l'aise avec les Regex pour éclairer ma lanterne de noob en Regex?
Dernière édition: il y a 2 ans 6 mois par Guardiola gabriel.
Connexion ou Créer un compte pour participer à la conversation.
- rhiwotar
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 1
il y a 2 ans 5 mois - il y a 2 ans 5 mois #30907
par rhiwotar
Réponse de rhiwotar sur le sujet Regex pour supprimer un bloc entre parenthèse
Salut, je pense avoir trouver
Pour tester tes regex, je te conseille regex101.com/
"this is a test (2020) (digital) (hoho-Empire)" -replace "(\([[:alnum:]]+-Empire\))",""
Pour tester tes regex, je te conseille regex101.com/
Dernière édition: il y a 2 ans 5 mois par Arnaud Petitjean. Raison: Mise en forme du code en utilisant une balise code
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 2 ans 5 mois #30908
par Arnaud Petitjean
MVP (Reconnect) et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Regex pour supprimer un bloc entre parenthèse
Salut Rhiwotar !
Je pense que ta proposition ne marche pas malheureusement...
En fait ce que veut Gabriel c'est supprimer complètement le dernier morceau de texte contenu entre parenthèses (ainsi que les parenthèses elles-mêmes). Du moins si j'ai bien compris sa demande...
Pas simple quand on n'est pas très expérimentés en RegEx...
Je pense que ta proposition ne marche pas malheureusement...
PS > "this is a test (2020) (digital) (hoho-Empire)" -match "(\(:alnum:+-Empire\))"
$false
En fait ce que veut Gabriel c'est supprimer complètement le dernier morceau de texte contenu entre parenthèses (ainsi que les parenthèses elles-mêmes). Du moins si j'ai bien compris sa demande...
Pas simple quand on n'est pas très expérimentés en RegEx...

MVP (Reconnect) et créateur de ce magnifique forum

Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 2 ans 5 mois #30909
par Arnaud Petitjean
MVP (Reconnect) et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Regex pour supprimer un bloc entre parenthèse
Que diriez-vous de cela ?
Dans ma proposition il n'y a pas l'espace de fin
.
Qu'en pensez-vous ?
"this is a test (2020) (digital) (hoho-Empire)" -replace '(.+\(.+\).+\(.+\)).+(\(.+\))','$1'
this is a test (2020) (digital)
Dans ma proposition il n'y a pas l'espace de fin

Qu'en pensez-vous ?
MVP (Reconnect) et créateur de ce magnifique forum

Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Guardiola gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 229
- Remerciements reçus 0
il y a 2 ans 5 mois #30928
par Guardiola gabriel
Réponse de Guardiola gabriel sur le sujet Regex pour supprimer un bloc entre parenthèse
ouch a oui c'est de la regex là...
mais c'est '$1' qui me rend perplexe tu remplaces le bloc trouvé par le premier groupe? (alors comme ca ca a l'air impressionant ce que j'ecris, mais meme moi je suis sûr d'avoir pas compris
)
par contre la regex s'occupe que du dernier groupe de parenthèse donc l le bloc qui contient empire je ne m'en débarasses pas si un petit malin me le met au milieu
mais c'est '$1' qui me rend perplexe tu remplaces le bloc trouvé par le premier groupe? (alors comme ca ca a l'air impressionant ce que j'ecris, mais meme moi je suis sûr d'avoir pas compris

par contre la regex s'occupe que du dernier groupe de parenthèse donc l le bloc qui contient empire je ne m'en débarasses pas si un petit malin me le met au milieu
PS C:\>"this is a test (2020) (hoho-Empire) (digital)" -replace '(.+\(.+\).+\(.+\)).+(\(.+\))','$1'
this is a test (2020) (hoho-Empire)
PS C:\>"this is a test (2020) (digital) (hoho-Emppioire)" -replace '(.+\(.+\).+\(.+\)).+(\(.+\))','$1'
this is a test (2020) (digital)
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 180
- Remerciements reçus 37
il y a 2 ans 5 mois #30929
par ericlm128
Réponse de ericlm128 sur le sujet Regex pour supprimer un bloc entre parenthèse
"this is a test (2020) (digital) (hoho-Empire)" -replace "\([^\(]*empire[^\)]*\)",""
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.095 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Regex pour supprimer un bloc entre parenthèse