Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


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(08Question307) (08cinema307) (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
#2

tcl
{((.*?)).*?((.*?)).*?((.*?))}

#3
Bonjour,

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


Code:
#!/usr/bin/tclsh

regexp {((.*?)).*?((.*?)).*?((.*?))} "07(08Question307) (08cinema307) (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
#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"
Quote: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
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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
#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
#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


Possibly Related Threads…
Thread Author Replies Views Last Post
  Aide sur des regexp Epsilon 4 3,545 09/06/2017, 17:02
Last Post: Epsilon
  Souci de regexp snoopy 2 3,078 09/12/2009, 17:22
Last Post: snoopy

Forum Jump:


Users browsing this thread: 1 Guest(s)