regexp
#1
Bonjour,

j'ai besoin d'un petit coup de pouce.
je m'attaque a une partie un peu compliqué pour moi....

je reçois via une variable la chose suivante :
Code :
07(08Question07) (08cinema07) (Qui est le producteur du film : K-19, le piège des profondeurs )

j'aimerai Isolé chaque partie dans une variable :
$a = Question
$b = cinema
$c = Qui est le producteur du film : K-19, le piège des profondeurs

je n'ai pas besoin des codes couleurs ni des ().

je ne trouve pas la commande pour supprimer les éléments...

si vous avez 5mn pour m'aider

un grand merci à vous
Répondre Avertir
#2
tcl
{((.*?)).*?((.*?)).*?((.*?))}


Répondre Avertir
#3
Bonjour,

merci pour la réponse.
par contre je bloque un peu voici le résultat :

Code :
#!/usr/bin/tclsh

regexp {((.*?)).*?((.*?)).*?((.*?))} "07(08Question07) (08cinema07) (Qui est l des profondeurs )" a b c  
puts "Full Match: $a"
puts "Sub Match1: $b"
puts "Sub Match2: $c"

Retour :
Code :
Executing the program....
$tclsh main.tcl

Full Match:
Sub Match1:
Sub Match2:

Merci pour votre aide.

Bonne journée
Répondre Avertir
#4
Outre le fait que tu as des caractères étranges (codes couleurs), je pense qu'il faut protéger (échapper) les parenthèses qui ne sont pas capturantes:
Code :
#!/usr/bin/tclsh
regexp {\((.*?)\).*?\((.*?)\).*?\((.*?)\)} "(Question) (cinema) (Qui est l des profondeurs )" a b c d
puts "Full Match: $a"
puts "Sub Match1: $b"
puts "Sub Match2: $c"
puts "Sub Match3: $d"
Citation :tclsh test.tcl
Full Match: (Question) (cinema) (Qui est l des profondeurs )
Sub Match1: Question
Sub Match2: cinema
Sub Match3: Qui est l des profondeurs
Répondre
#5
Bonjour,

avec un peu de retard ,mais l'ensemble est ok.
j'ai modifié mon script et cela fonctionne comme souhaité.

merci pour votre aide
Répondre Avertir
#6
Par contre je sèche sur un cas précis :
imaginon que dans ma variable j'ai ceci "Tour de Tom: [Question01] - BLABLA"

comment je peux "matcher" sur ce type de caractère ?
je cherche dans le wiki mais aucune réponse ^^

merci encore une fois pour votre aide
Répondre Avertir
#7
bonjour,

après de nombreux test en fait c'est identique au "(" i suffit d'echapper avec \
mon script fonctionne parfaitement.

merci pour votre aide
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté