perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 26
Click for quality!




10.02.2012 / 21:17

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragSplit
Seitenanfang
Hallo Allezusammen,
Ich hab ein Problem mit split.
Und zwar habe ich einen String in folgendem Format:


|Tab1|Tab2|Tab3|[[Link|Tab4]]|Tab5

Mit folgendem Code kann ich jede einzelne Tabelle einzeln abarbeiten:


@temparray = split(/\|/, $_) ;
foreach $temp1 (@temparray)
{
...
}

Ich habe nur das Problem, dass der Link [[Link|Tab4]] auch als Trenner erkannt wird. Hier genau setzt dann auch meine Frage an. Wie muss ich das Programm abändern, dass "|" innerhalb eines "[[(.+?)]]" Konstruktes, nicht als Trenner interpretiert wird?

Datum: 12.02.2007-11:59

Beitragre: Split
Seitenanfang
Hallo Benni,

in meinem Bsp. ersetze ich zunächst alle '|' durch 'neues_splitt_zeichen' und anschließend nur das 'neues_splitt_zeichen' innerhalb der eckigen Klammern zurück in ein '|', damit der Inhalt unverändert bleibt:

$scalar = "|Tab1|Tab2|Tab3|[[Link|Tab4]]|Tab5";
$scalar =~ s/\|/neues_splitt_zeichen/g;
$scalar =~ s/(\[[^\[]*)(neues_splitt_zeichen)([^\|]*\])/$1|$3/g;
@array = split("neues_splitt_zeichen",$scalar);

Datum: 12.02.2007-13:37

Beitragre: Split
Seitenanfang
Danke TommyB,

ist zwar ein Workaround.
Aber die Hauptsache ist, dass funktioniert. Und das tut es. Vielen vielen Dank.

Thumbs up !!!

Datum: 12.02.2007-15:25

-






-
-