J'écris un programme où je dois lire un fichier texte et extraire quelques chaînes spécifiques, le texte est écrit dans un langage DOT et ceci est un exemple du fichier:Extraction des informations à partir du fichier texte en java
digraph G {
node [shape=circle];
0 [xlabel="[]"];
1 [xlabel="[[Text]]"];
0 -> 1 [label="a"];//this
1 -> 2 [label="ab"];//this
1 -> 3 [label="123"];//this
}
Je veux ignorer tout sauf les lignes qui ont la structure des lignes commentées (par //this
);
ensuite divisé chaque ligne à trois parties, à savoir:
1 -> 2 [label="ab"];
enregistré en tant que liste de chaînes (ou un tableau ...):
[1,2,ab]
J'ai essayé beaucoup avec regex
mais je n'a pas pu obtenir les résultats attendus.
Essayez [ '^ (\ d +) \ s + -> \ s + (\ d +) \ s + \ [\ w + = "([^"] *) "]; \ s * // [^/\ n] * $'] (https://regex101.com/r/mB4tY2/1). sont dans le groupe 1, 2 et 3. –
puisque vous êtes en train d'analyser un fichier point (fichier graphique), il existe peut-être une bibliothèque java qui peut analyser les fichiers point et obtenir les informations dont vous avez besoin (nœuds, bords, étiquettes). solution plus robuste que regex – svenhornberg
merci pour tout le monde!, @stribizhev pouvez-vous le mettre en code s'il vous plaît !! –