Hello
J'ai un texte de ce genre:
Je souhaiterais remplacer le bloc du milieu par une chaine $temp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 {SndEventE:(MATHIEU) SetName("DEL_Play_Og_Beo_Eff_Medium") SetMachin("TRUE") SetParam1(201_Beowulf_Efforts.csb^SndResourceE:9) SetVersion(18) } {SndEventE:(MATHI) SetFileName("100_Fight_Mec_Sh_Ti_Bl_St.wav") SetLoop(aaaaaaaaaaaaaaa) SetSpeakerBus("DARE_SPEAKER_INVALID") {ResLanguageM:("NOT_LOC") SetVolume_dB(0.000000000000) SetZeroLatencyStreaming(mmmmmmmmmm) SetSampleFrequency(48000) SetSampleChannelNumber(2) } } {SndEventE:(MATHIEU) SetName("DEL_Play_Og_Beo_Eff_Medium") SetMachin("TRUE") SetParam1(201_Beowulf_Efforts.csb^SndResourceE:9) SetReverb("TRUE") SetBalance("TRUE") SetTruc("TRUE") SetVersion(18) }
J'utilise l'expression suivante:
$_blockTitle etant la premiere ligne du bloc. Tout se passe bien sauf qu'il s'arrete à la premiere accolade (of course) et je ne sais pas quoi mettre comme expression pour lui dire de remplacer tout jusqu'à la derniere accolade fermante du bloc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $temp2 =~ s/$_blockTitle.*?\}/$temp/s;
Ce n'est qu'un exemple bien sur, je ne peux pas connaitre à l'avance le nombre d'accolade à la fin du bloc.
Merci d'avance
Mat'
Partager