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

Regex auf ein Array

Leser: 2


<< >> 9 Einträge, 1 Seite
xGhost
 2008-08-05 17:10
#113112 #113112
User since
2008-08-05
2 Artikel
BenutzerIn
[default_avatar]
Hallo Zusammen

Ich habe eine Frage. Und zwar kann man mit Boost::Regex oder auch mit PHP Perl Regex (PCRE) ein Array für
diverse Sachen Nehmen.

Eine geile Funktion welche ich schon ein paar mal in perl gewünscht habe:
Ersetzen mit Arrays. Die Suchmuster sind in einem Array und in einem Anderen Array
das gegenstück für das Ersetzen. Sowas geht in Perl nicht direkt?

Es ist ja nicht gerade ein Weltuntergang wenn das nicht gänge, nur kann ich mir
schlecht vorstellen das PCRE mehr kann, als in seiner Grundform.

Grüsse
Ghost
GwenDragon
 2008-08-05 17:27
#113114 #113114
User since
2005-01-17
14747 Artikel
Admin1
[Homepage]
user image
GwenDragon
 2008-08-05 17:52
#113116 #113116
User since
2005-01-17
14747 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

use strict;
use warnings;

my %r = (
q/^abc\d{4}/ => q/#ANFANG#/,
q/[a-z]{2,3}[!#]/ => q/#SPEC#/
);
my $string = 'abc4444 Perl ist! eine ganz! besondere Sprache, mit# PCRE und RegExes';
map { $string=~s/$_/$r{$_}/eg; } keys %r;
print $string;
1;
xGhost
 2008-08-05 19:11
#113120 #113120
User since
2008-08-05
2 Artikel
BenutzerIn
[default_avatar]
GwenDragon+2008-08-05 15:27:35--
Du meinst Beispiel 2 und 3 bei PHPs preg_replace?


Ja.

Deine Lösung ist genial. Danke.
Darum liebe ich Perl.

greets
Taulmarill
 2008-08-05 19:21
#113121 #113121
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
map im void Kontext? Böse Drachin! Benutze lieber eine for-Schleife.
Code: (dl )
$string=~s/$_/$r{$_}/eg for keys %r;
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
GwenDragon
 2008-08-05 21:47
#113125 #113125
User since
2005-01-17
14747 Artikel
Admin1
[Homepage]
user image
Wieso muss ich das?
Wieso nennt der Herr Taulmarill mich eine Böse Drachin?
Bin ich mit dem Beispiel eine schlechte Perl-Lehrende?

Bitte wegen des map weiter unter http://board.perl-community.de/thread/12300/#MSG0
Taulmarill
 2008-08-06 01:38
#113135 #113135
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Das "Böse Drachin!" wahr eigentlich nicht ganz so ernst gemeint, wie du es anscheinend aufgenommen hast. Das nächste mal werde ich das ganze mit Smileys pflastern oder ganz auf Uneindeutigkeiten verzichten.

Schlecht sind deine Antworten in diesem Forum sicher nicht. In diesem einen Fall hielt ich es aber tatsächlich für angemessener, die Funktion mit for anstatt mit map zu zeigen, gerade weil der Fragende weniger erfahren in Perl zu sein scheint und map nur dann zu zeigen, wenn dessen Verhalten auch tatsächlich benötigt wird.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Escape
 2008-08-06 02:36
#113136 #113136
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
Taulmarill+2008-08-05 17:21:33--
Code: (dl )
$string=~s/$_/$r{$_}/eg for keys %r;

Gerade wenn Du auf Anfänger Bezug nimmst, hätte Dein Code (aus Lesbarkeitsgründen) denn doch besser so
Code: (dl )
$string =~ s/$_/$r{$_}/eg for keys %r;
aussehen sollen ;-)
*tiefduck*
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.
pq
 2008-08-06 11:40
#113144 #113144
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
GwenDragon+2008-08-05 15:52:11--
Code: (dl )
map { $string=~s/$_/$r{$_}/eg; } keys %r;

der e-modifier ist hier völlig überflüssig...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 9 Einträge, 1 Seite



View all threads created 2008-08-05 17:10.