search and replace

Alles, was Perl betrifft, kann hier besprochen werden.

search and replace

Postby lain » 23. March 2004 09:51

my @search = ('ä','ö','ü','ß','Ä','Ü','Ö','\'');
my @replace = ('ae','oe','ue','ss','Ae','Ue','Oe','');

$mastercsv[$i] =~ s/@search/@replace/g;

so ähnlich (von der herangehensweise) funktioniert es in php, gibt es in perl eine möglichkeit das ähnlich zu machen? oben die möglichkeit ersetzt nur das erste element des arrays :/

keiner ne idee? :(
lain
 
Posts: 38
Joined: 19. March 2004 13:48

Postby Wiedmann » 23. March 2004 12:27

Hi,
in PHP hast du ja zwei Möglichkeiten um regular Expression zu benutzen.

Entweder nach POSSIX Extendend wie z.B. beim Befehl:
ereg()

Oder Perl Kompatibel wie z.B. beim Befehl:
preg_match()

Du hast wohl bisher nur die erste Version benutzt. Die Suchmuster wie sie bei PCRE benutzt werden, sollten eigentlich auch in Perl funktionieren:
http://de3.php.net/manual/en/pcre.pattern.syntax.php
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Sosum » 23. March 2004 15:08

Hallo lain,

also mit den Arrays funktioniert das bei mir auch nich... Ich mache das in Perl daher in einzelnen Anweisungen:
Code: Select all
$masterscsv{$i] =~ s/ä/ae/g;

Was aber auch gehen müsste, ist dass du es in eine Schleife einbaust:
Code: Select all
my @search = ('ä','ö','ü','ß','Ä','Ü','Ö','\'');
my @replace = ('ae','oe','ue','ss','Ae','Ue','Oe','');
my $counter = 0;
foreach (@search) {
  $mastercsv[$si] =~ s/$search[$counter]/$replace[$counter++]/gm;
}

Sieht zwar auch komplizierter aus, als die PHP Lösung, doch Rechentechnisch dürfte es auf denselben Aufwand hinauslaufen. Hoffe eine brauchbare Antwort gegeben zu haben

Aron
Sosum
 
Posts: 24
Joined: 08. September 2003 23:08

Postby lain » 25. March 2004 21:48

japp, letzteres hat mir sehr geholfen :-)
vorteil von perl is, dass man durch den komischen $_ variablen schneller weitervarbeiten und schleifen kürzer schreiben kann

danke ;-)
lain
 
Posts: 38
Joined: 19. March 2004 13:48

Postby micha78347 » 08. June 2004 20:22

micha78347
 
Posts: 57
Joined: 07. June 2004 20:56


Return to Perl

Who is online

Users browsing this forum: No registered users and 1 guest