Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6940[/thread]

String splitten, aber Trennzeichen merken

Leser: 1


<< >> 3 Einträge, 1 Seite
Froschpopo
 2005-04-29 20:54
#54316 #54316
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich hab einen string:
Code: (dl )
$string = 'hallo welt :-), mir geht es gut;-)';


jetzt brauche ich ein Array welches so aussieht:

Code: (dl )
1
2
3
4
5
6
@array = (
    'hallo welt',
    ':-)',
    , mir geht es gut'
    ';-)'
)

wie man sieht, verwende ich Smilies als eine Art "Trennzeichen".
Mein Ansatz war, den String nach einer Liste von Smilie-Separatoren mit split zu durchsuchen. Allerdings brauche ich auch den Name des jeweiligen Smilies der den String gesplittet hat.
Hat jemand eine Idee ?
Die Trennzeichen möchte ich aus einem Hash beziehen:
Code: (dl )
1
2
3
4
5
6
my %emotes = (
    ':-)' => 'smile.gif',
    ';-)' => 'zwinker',
    '*kiss' => 'kiss.gif'
#usw.
);
\n\n

<!--EDIT|Froschpopo|1114793708-->
Dubu
 2005-04-30 00:14
#54317 #54317
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Code: (dl )
1
2
3
4
5
6
# Eine Regex aus allen Smiley-Strings bauen.
my $smiley_re = join '|', map { "\Q$_\E" } keys %emotes;

# $string an Smileys/Smilies splitten, die runden Klammern sorgen dafuer,
# dass die Smileys/Smilies selber auch im @array landen.
my @array = split /($smiley_re)/, $string;

ungetestet

Edit: Ach ja, um das Entfernen ueberfluessiger Leerzeichen (wie nach "hallo welt " oben) musst du dich selber noch kuemmern.\n\n

<!--EDIT|Dubu|1114805719-->
Froschpopo
 2005-04-30 00:28
#54318 #54318
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
funktioniert prima :-) Dankeschön und schönes Wochenende dir noch !
<< >> 3 Einträge, 1 Seite



View all threads created 2005-04-29 20:54.