Schrift
[thread]6006[/thread]

Mehrmaliges Matchen in einem Suchstring vermeiden (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
havi
 2004-01-09 10:59
#78882 #78882
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Wir haben uns leider beim posten ueberschnitten...

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

use warnings;
use strict;

my $string = "Das ist ein Test wo e12 zweimal vorkommt, naemlich genau jetzt: e12...";

my ($anz) = $string =~ s%\b(e\d+)\b%$1%gi;

print $anz; # 2


Gruss
Crian
 2004-01-09 11:00
#78883 #78883
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Was ist als Usereingabe ok:

a) 'E7'
b) 'E7E8'
c) 'E7 E8'
d) 'E7E7'
e) 'E7 E7'

bitte angeben... sonst kommen wir hier nicht weiter.
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
jkrais
 2004-01-09 11:01
#78884 #78884
User since
2003-12-10
5 Artikel
BenutzerIn
[default_avatar]
als gültig darf nur die Eingabe a) angesehen werden.
havi
 2004-01-09 11:03
#78885 #78885
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Dann hast du schon die Loesung!
2 Postings rauf!

Gruss
Crian
 2004-01-09 11:03
#78886 #78886
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=havi,09.01.2004, 09:59]Wir haben uns leider beim posten ueberschnitten...

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

use warnings;
use strict;

my $string = "Das ist ein Test wo e12 zweimal vorkommt, naemlich genau jetzt: e12...";

my ($anz) = $string =~ s%\b(e\d+)\b%$1%gi;

print $anz; # 2


Gruss[/quote]
Und was passiert bei der Eingabe 'E12E12'?
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
havi
 2004-01-09 11:05
#78887 #78887
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
OK :)

Dann jetzt...

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

use warnings;
use strict;

my $string = "Das ist ein Test wo E12E12 zweimal vorkommt...";

my ($anz) = $string =~ s%(e\d+)%$1%gi;

print $anz; # 2


Gruss
jkrais
 2004-01-09 11:05
#78888 #78888
User since
2003-12-10
5 Artikel
BenutzerIn
[default_avatar]
Ok funkt.
Vielen Dank.
Crian
 2004-01-09 11:05
#78889 #78889
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nein, nimm meine Lösung von oben, ich poste sie nochmal angepasst an Dein Problem:

Code: (dl )
1
2
3
4
5
6
7
my @treffer;
do {
   my $temp = <STDIN>;
   @treffer = $temp =~ m~(e\d+)~gi;
} while (scalar @treffer != 1);

print "Usereingabe ist '", $treffer[0], "'\n";
\n\n

<!--EDIT|Crian|1073639284-->
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
havi
 2004-01-09 11:07
#78890 #78890
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=Crian,09.01.2004, 10:05]Nein, nimm meine Lösung von oben, ich poste sie nochmal angepasst an Dein Problem:

Code: (dl )
1
2
3
4
5
my @treffer;
do{
   my $temp = <STDIN>;
   @treffer = $temp =~ m~(e\d+)~gi;
} while (scalar @treffer != 1);
[/quote]
Funzt natuerlich auch, aber ich denke meine Loesung ist schneller!

Gruss
Crian
 2004-01-09 11:08
#78891 #78891
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Deine Lösung nimmt unnötige Ersetzungen vor, das stört mich :)
Außerdem, wo ist hinterher die EZahl aus der Usereingabe?\n\n

<!--EDIT|Crian|1073639391-->
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 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2004-01-09 10:45.