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

Reguläre Ausdrücke: nur am Ende ersetzen



<< >> 5 Einträge, 1 Seite
[HR]Doomrunner
 2003-10-01 13:15
#59320 #59320
User since
2003-09-04
77 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe einen String, von dem ich am Ende ein "str" wegnehmen will, falls dort eins ist. Allerdings nicht irgendwo aus dem Wort. Das ganz soll z.B. folgendes liefern:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
$wort = "Dorfstr";
$wort =~s /str\b//g;

// Ergebnis : Dorf

$wort = "Elsa-Brändström-Weg"
$wort =~s /str\b//g;

// hier sollte nichts verändert werden. Leider wird hier aber auch das str herausgeschnitten


Steht das "\b" nicht als Wortbegrenzung? Der schneidet mir das leider auch aus der Mitte heraus... Wie kann ich das hinbekommen?

thx im Voraus
jan
 2003-10-01 13:40
#59321 #59321
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
nimm
$wort =~s /str\b$//g;

das $ vor dem zweiten / sorgt dafür, dass es nur am ende des strings matcht

oder willst du nur am ende eines wortes matchen? dann gibts in deinem fall wohl schwierigkeiten mit dem ö. definier doch eine klasse mit den zeichen, die danach nicht kommen dürfen, damit es ein wort-ende ist...
format_c
 2003-10-01 13:50
#59322 #59322
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Also am Ende eines Wortes nicht am Ende eines Strings? Das ist nicht ganz klar.

Aber dein Problem sind die Umlaute:
Siehe mein Script:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use warnings;
my %umlaute = (
'ö' => 'oe',
'ü' => 'ue',
'ä' => 'ae'
);
my $var1 = "Dorfstr";

my $var2 = "Brandstroemweg";

for ($var1,$var2) {
s/(ä|ü|ö)/$umlaute{$1}/g;
s/str(?=\b)//g;
print;
}

DorfBrandstroemweg


Gruß alex
pq
 2003-10-01 14:42
#59323 #59323
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=jan,01.10.2003, 11:40]oder willst du nur am ende eines wortes matchen? dann gibts in deinem fall wohl schwierigkeiten mit dem ö.[/quote]
use locale;
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
format_c
 2003-10-01 15:26
#59324 #59324
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
ah wieder was gelernt.;)
Gruß Alex
<< >> 5 Einträge, 1 Seite



View all threads created 2003-10-01 13:15.