Schrift
[thread]5964[/thread]

Probleme mit RegEx suchen/ersetzen mit Variablen (Seite 2)

Leser: 5


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Crian
 2003-12-11 20:03
#75547 #75547
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=pq,11.12.2003, 14:15]dem eval 's///' würde ich dann doch eher s///ee vorziehen. je nachdem,
woher der input kommt, muss man aber auch noch in diesem fall vorsichtig
sein.[/quote]
Dann meinst Du statt

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
use strict;
use warnings;

my $String = 'Kuckst Du hier';
my $RegExString = 's/(Kuckst)( Du )(hier)/$3$2$1/';

$_ = $String;
if ( eval $RegExString ) {
$String = $_;
print $String;
}


soetwas:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings;

my $String = 'Kuckst Du hier';

$_ = $String;
if ( s/(Kuckst)( Du )(hier)/$3$2$1/ee ) {
$String = $_;
print $String;
}


?

Dann bekomme ich aber folgende Fehler um die Ohren gehauen:

Code: (dl )
1
2
3
4
5
6
Scalar found where operator expected at D:\daten\perl\FORUM\re_basteln3.pl line 8, near "$3$2"
(Missing operator before $2?)
Scalar found where operator expected at D:\daten\perl\FORUM\re_basteln3.pl line 8, near "$2$1"
(Missing operator before $1?)
syntax error at D:\daten\perl\FORUM\re_basteln3.pl line 8, near "$3$2"
Execution of D:\daten\perl\FORUM\re_basteln3.pl aborted due to compilation errors.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2003-12-11 21:50
#75548 #75548
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
meinte eher sowas:
$replace = q/"$1$2$3"/;
s/..../$r/ee;
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
Crian
 2003-12-12 00:44
#75549 #75549
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Also so:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
use strict;
use warnings;

my $String = 'Kuckst Du hier';

$_ = $String;
my $r = q/"$3$2$1"/;
if ( s/(Kuckst)( Du )(hier)/$r/ee ) {
$String = $_;
print $String;
}


?


Nett - tut genau das richtige :)[
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2003-12-11 12:15.