Hi,
ich würde jeweils nur eine Zeile matchen und die jeweils vorherige zwischenspeichern:
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
30
31
32
33
34
35
#!/usr/bin/perl -w
use strict;
# wir wollen z.B. ID 238854, den davor und den danach
my $id = 238854;
my ($previous, $actual, $next) = ('', '', '');
while (<DATA>) {
chomp;
$previous = $actual;
$actual = $_;
if ($actual =~ /^<A TITLE=\"(.+?)\" HREF=\".+mode=Info\&id=$id\&.+$/) {
$next = <DATA>; chomp $next;
last;
}
}
print join("
", $previous,$actual, $next);
### verdammt, wie kann ich hier ein DATA mit jeweils zwei Unterstrichen einfügen, ohne dass des Forum es wieder rausschneidet?
--DATA--
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=321023&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Aeromonas phage 31</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=230158&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Bacteriophage Aaphi23</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=12402&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Bacteriophage EJ-1</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=292029&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Bacteriophage G1</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=238854&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Bacteriophage S-PM2</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=244310&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Burkholderia cenocepacia phage Bcep1</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=279530&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Burkholderia cenocepacia phage BcepB1A</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=260373&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Burkholderia cepacia phage Bcep43</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=209052&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Burkholderia cepacia phage Bcep781</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=330395&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Listeria bacteriophage P100</STRONG></A><LI TYPE=square>
<A TITLE="species" HREF="/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=205877&lvl=10&lin=f&keep=1&srchmode=1&unlock&filter=genome_filter"><STRONG>Mycobacterium phage Bxz1</STRONG></A>
Nur so nebenbei: HTML mit RegExes zu Leibe zu rücken ist meist ein schmerzhafter Prozess. Es würde sich eher sowas wie HTML::TreeBuilder oder so anbieten.
Gruss,
Sven\n\n
<!--EDIT|svenXY|1138287679-->