Extraction texte sur plusieurs lignes en Perl
Résolu/Fermé
gingerbrice
Messages postés
5
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
30 avril 2008
-
29 oct. 2007 à 13:07
Mortagus Messages postés 2 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 23 septembre 2013 - 19 févr. 2010 à 17:29
Mortagus Messages postés 2 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 23 septembre 2013 - 19 févr. 2010 à 17:29
A voir également:
- Extraction texte sur plusieurs lignes en Perl
- Transcription audio en texte word gratuit - Guide
- Extraction video youtube - Guide
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
- Partager photos en ligne - Guide
5 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
29 oct. 2007 à 13:56
29 oct. 2007 à 13:56
Salut,
Je n'ai pas le temps d'entrer dans les détails, je suis au boulot ;-)
#!/usr/bin/perl use strict;use warnings; while(<DATA>){print if /Extracellular/ ... /<\/tt/} __END__ <td valign=top><b>TOPO_DOM</b></td> <td valign=top nowrap><b><a href="/cgi-bin/sprot-ft-details.pl?Q14332@TOPO_DOM@24@247">24-247</a></b></td> <td valign=top><b>224</b></td> <td ><b>Extracellular (Potential)</b><br><tt>QFHGEKGISI PDHGFCQPIS IPLCTDIAYN QTIMPNLLGH TNQEDAGLEV HQFYPLVKVQ CSPELRFFLC SMYAPVCTVL EQAIPPCRSI CERARQGCEA LMNKFGFQWP ERLRCEHFPR HGAEQICVGQ NHSEDGAPAL LTTAPPPGLQ PGAGGTPGGP GGGGAPPRYA TLEHPFHCPR VLKVPSYLSY KFLGERDCAA PCEPARPDGS MFFSQEETRF ARLW </tt></td> </tr> <tr bgcolor="#FFFFCC"> <td valign=top><input type=checkbox name=seq value=">Q14332|TRANSMEM_248-268 1 (Potential) ILTWSVLCCASTFFTVTTYLV"></td> <td valign=top><b>TRANSMEM</b></td> <td valign=top nowrap><b><a href="/cgi-bin/sprot-ft-details.pl?Q14332@TRANSMEM@248@268">248-268</a></b></td> <td valign=top><b>21</b></td> <td ><b>1 (Potential)</b><br><tt>ILTWSVLCCA STFFTVTTYL V </tt></td> </tr> <tr bgcolor="#FFFFCC"> <td valign=top><input type=checkbox name=seq value=">Q14332|TOPO_DOM_269-279 Cytoplasmic (Potential) DMQRFRYPERP"></td> <td valign=top><b>TOPO_DOM</b></td>On obtiens
root@debian:~# perl ccm.pl <td ><b>Extracellular (Potential)</b><br><tt>QFHGEKGISI PDHGFCQPIS IPLCTDIAYN QTIMPNLLGH TNQEDAGLEV HQFYPLVKVQ CSPELRFFLC SMYAPVCTVL EQAIPPCRSI CERARQGCEA LMNKFGFQWP ERLRCEHFPR HGAEQICVGQ NHSEDGAPAL LTTAPPPGLQ PGAGGTPGGP GGGGAPPRYA TLEHPFHCPR VLKVPSYLSY KFLGERDCAA PCEPARPDGS MFFSQEETRF ARLW </tt></td>Il te reste à supprimer les balises de début est fin.
Je n'ai pas le temps d'entrer dans les détails, je suis au boulot ;-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
29 oct. 2007 à 13:59
29 oct. 2007 à 13:59
Tiens une autre version
#!/usr/bin/perl use strict;use warnings; my @tab; while(<DATA>){push @tab,$_ if /Extracellular/ ... /<\/tt/} grep { s/<.*?\/?>//g } @tab; print "@tab\n"; __END__ <td valign=top><b>TOPO_DOM</b></td> <td valign=top nowrap><b><a href="/cgi-bin/sprot-ft-details.pl?Q14332@TOPO_DOM@24@247">24-247</a></b></td> <td valign=top><b>224</b></td> <td ><b>Extracellular (Potential)</b><br><tt>QFHGEKGISI PDHGFCQPIS IPLCTDIAYN QTIMPNLLGH TNQEDAGLEV HQFYPLVKVQ CSPELRFFLC SMYAPVCTVL EQAIPPCRSI CERARQGCEA LMNKFGFQWP ERLRCEHFPR HGAEQICVGQ NHSEDGAPAL LTTAPPPGLQ PGAGGTPGGP GGGGAPPRYA TLEHPFHCPR VLKVPSYLSY KFLGERDCAA PCEPARPDGS MFFSQEETRF ARLW </tt></td> </tr> <tr bgcolor="#FFFFCC"> <td valign=top><input type=checkbox name=seq value=">Q14332|TRANSMEM_248-268 1 (Potential) ILTWSVLCCASTFFTVTTYLV"></td> <td valign=top><b>TRANSMEM</b></td> <td valign=top nowrap><b><a href="/cgi-bin/sprot-ft-details.pl?Q14332@TRANSMEM@248@268">248-268</a></b></td> <td valign=top><b>21</b></td> <td ><b>1 (Potential)</b><br><tt>ILTWSVLCCA STFFTVTTYL V </tt></td> </tr> <tr bgcolor="#FFFFCC"> <td valign=top><input type=checkbox name=seq value=">Q14332|TOPO_DOM_269-279 Cytoplasmic (Potential) DMQRFRYPERP"></td> <td valign=top><b>TOPO_DOM</b></td>Le résultat
root@debian:~# perl ccm.pl Extracellular (Potential)QFHGEKGISI PDHGFCQPIS IPLCTDIAYN QTIMPNLLGH TNQEDAGLEV HQFYPLVKVQ CSPELRFFLC SMYAPVCTVL EQAIPPCRSI CERARQGCEA LMNKFGFQWP ERLRCEHFPR HGAEQICVGQ NHSEDGAPAL LTTAPPPGLQ PGAGGTPGGP GGGGAPPRYA TLEHPFHCPR VLKVPSYLSY KFLGERDCAA PCEPARPDGS MFFSQEETRF ARLW
gingerbrice
Messages postés
5
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
30 avril 2008
29 oct. 2007 à 14:19
29 oct. 2007 à 14:19
Super je devrai arriver à me debrouiller avec ça.
Merci bcp lami20j !
je mettrai le sujet en résolu quand j'aurai fini de traiter mes fichiers.
Merci bcp lami20j !
je mettrai le sujet en résolu quand j'aurai fini de traiter mes fichiers.
gingerbrice
Messages postés
5
Date d'inscription
lundi 29 octobre 2007
Statut
Membre
Dernière intervention
30 avril 2008
30 oct. 2007 à 08:37
30 oct. 2007 à 08:37
Donc le code qui ma permis de resoudre mon probleme est
my @tab;
while(<DATA>){push @tab,$_ if /Extracellular/ ... /<\/tt/}
grep { s/<.*?\/?>//g } @tab;
print "@tab\n";
Encore merci lami20j
my @tab;
while(<DATA>){push @tab,$_ if /Extracellular/ ... /<\/tt/}
grep { s/<.*?\/?>//g } @tab;
print "@tab\n";
Encore merci lami20j
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mortagus
Messages postés
2
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
23 septembre 2013
19 févr. 2010 à 17:29
19 févr. 2010 à 17:29
bonjour a tous,
j'ai un problème similaire a notre ami gingerbrice:
voici mon texte :
ID Q8VLP7_STRAG Unreviewed; 544 AA.
AC Q8VLP7;
DT 01-MAR-2002, integrated into UniProtKB/TrEMBL.
DT 01-MAR-2002, sequence version 1.
DT 09-FEB-2010, entry version 23.
DE SubName: Full=Group B streptococcus secreted protein;
DE Flags: Precursor;
GN Name=bsp;
OS Streptococcus agalactiae sophisticae ultrae compilatum (message entre
OS parentheses).
OC Bacteria; Firmicutes; Lactobacillales; Streptococcaceae;
OC Streptococcus.
OX NCBI_TaxID=1311;
la partie en gras est le texte qui m'interresse. J'aimerais bien utiliser uniquement les regex afin de pouvoir extraire cette partie de texte. Tout en sachant qu'il me faut que les informations des lignes commençant par le même "identifiant".
J'ai pondu ceci : (.?OS (.*)\n?)+\.
mais ça ne me permet pas d'avoir que le texte sans les à coté.
Pouvez-vous m'aider ?
j'ai un problème similaire a notre ami gingerbrice:
voici mon texte :
ID Q8VLP7_STRAG Unreviewed; 544 AA.
AC Q8VLP7;
DT 01-MAR-2002, integrated into UniProtKB/TrEMBL.
DT 01-MAR-2002, sequence version 1.
DT 09-FEB-2010, entry version 23.
DE SubName: Full=Group B streptococcus secreted protein;
DE Flags: Precursor;
GN Name=bsp;
OS Streptococcus agalactiae sophisticae ultrae compilatum (message entre
OS parentheses).
OC Bacteria; Firmicutes; Lactobacillales; Streptococcaceae;
OC Streptococcus.
OX NCBI_TaxID=1311;
la partie en gras est le texte qui m'interresse. J'aimerais bien utiliser uniquement les regex afin de pouvoir extraire cette partie de texte. Tout en sachant qu'il me faut que les informations des lignes commençant par le même "identifiant".
J'ai pondu ceci : (.?OS (.*)\n?)+\.
mais ça ne me permet pas d'avoir que le texte sans les à coté.
Pouvez-vous m'aider ?