Expression reguliere comment y arriver...

tokolo -  
 tokolo -
Salut les copain (des pyces ... un jeu de mots)
j'ai un fichier de ce type

//Bus1
input [3:0] a,
input [5:0] b ,
//bus 2
output sortie,
output [5:0] toko,

je souhaite obtenir cet arbre :
+Bus1
+a
+b
+Bus2
+sortie
+toko

je veux faire cela avec une expression reguliere.
la patern que j'ai essaye est la suivante
l'expression reguliere est globale et multiligne

"\s*//(.*)$(.*)"
je recupere bien le nom de mes Bus1 et Bus2 dans $1 ais dans $2 je n'ai rien.
que faire
et d'un point de vue général comment récupérer une chaine s'il n'y a pas de délimiteur de fin?

4 réponses

EminoMeneko Messages postés 2499 Statut Membre 318
 
J'ai rien pigé. Tu fais des expressions régulières dans quel langage ?
0
fidraman Messages postés 196 Statut Membre 8
 
citer svp la language avec laquelle tu travaille ?
0
tokolo
 
Bonjour et desolé si je n'ai pas été clair.
je pense que le langage n'a pas de rapport direct , mais si cela peut aider, je programe en VBasic.
voici mon code.

Dim re As RegExp
Dim Match As Match
Dim Matches As MatchCollection
Dim RetStr As String
Set re = New RegExp
re.Global = True
re.MultiLine = True
re.Pattern = "^\s*//(.*)$(.*))"
Set Matches = re.Execute(TextBox1.Text) ' TextBox1.Text contient le texte cité ci dessous.
Debug.Print Matches.Count
For Each Match In Matches
Debug.Print "BUS"; Match.SubMatches(0); Len(Match.SubMatches(0))
Debug.Print "Signals"; Match.SubMatches(1); Len(Match.SubMatches(1))
Next

le texte qui se trouve dans textBox1.Text est

//bus1
input reg [3:0]data,
input enable,
//bus2
output clk,

et voici ce que j'obtiens
2
BUSbus1
5
Signals 0
BUSbus2
5
Signals 0

il retrouve bien le premier element mais pas le second. (chaine de caracter nulle)
merci de votre aide!
0
tokolo
 
avec l'expression reguliere suivante :
"//(.*)\r\n(.*)"
j'obtiens ce que je veux. mais pas avec
"//(.*)$(.*)"
mon probleme est résolu, mais je ne sais pas pourquoi le $ qui indiaue normalement une fin de ligne ne me donne pas le bon resultat.
0