Schrift
[thread]9214[/thread]

regex "hallo" dummy



<< >> 7 Einträge, 1 Seite
RPerl
 2007-07-22 17:42
#78741 #78741
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Hallo,

mich hat mal wer drauf angesprochen und seit sem laesst es mir keine Ruhe *g*
Wie kann man beim Woertche "Hallo", mit einem regex, genau das ZWEITE l rausziehen und print'n?

Ich bekomme immer nur das erste gematched...

Danke!

rPerl
sid burn
 2007-07-22 18:13
#78742 #78742
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
[quote=RPerl,22.July.2007, 15:42]
Wie kann man beim Woertche "Hallo", mit einem regex, genau das ZWEITE l rausziehen und print'n?[/quote]
Code: (dl )
print 'l';


Hmm, ne mal ehrlich deine Formulierung ist total schwammig. Was willst du haargenau machen?

Ein l zu finden und auszugeben ist ziemlich Sinnfrei, da kannst du direkt ein "l" ausgeben.

Möchtest du den 4.Buchstaben eines Wortes ausgeben. Möchtest du wenn zwei Buchstaben aufeinanderfolgen den Buchstaben ausgeben, möchtest du... ?\n\n

<!--EDIT|sid burn|1185113747-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
renee
 2007-07-22 18:22
#78743 #78743
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
sid burn hat recht, dass die Aufgabe ziemlich sinnfrei ist, aber damit Du eine RegEx hast: ;)

Code (perl): (dl )
1
2
my ($l) = 'hallo' =~ /hal(l)o/;
print $l;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
RPerl
 2007-07-22 18:30
#78744 #78744
User since
2006-11-26
384 Artikel
BenutzerIn

user image
ha! Ja sie ist sinnfrei =) Hab mich aber eben im IRC mit einem Kollegen gefragt wies wohl ging =)
Habs eben selber rausgefunden

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

use strict;
use warnings;

my $lol = 'Hallo';
($lol) =~ /Hal(l)o/;
if ($1) { print $1; }


Bin mal wieder ein wenig regex lernen zZt. ;)

Sorry wenns soo sinnfrei war, wollte euch nicht eure Zeit klauen. Bin nur nicht drauf gekommen. Und wenn ich mir was in den Kopp setze, will ich das immer loesen, egal wie :)

cya

rperl
renee
 2007-07-22 18:52
#78745 #78745
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Fast richtig:

Code (perl): (dl )
1
2
3
4
my $lol = 'Hallo';
if($lol =~ /Hal(l)o/ ){
    print $1; 
}


Sonst bekommst Du bei so etwas Probleme:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use strict;
use warnings;

my $lol = 'Hallo';
($lol) =~ /Hal(l)o/;

my $var = 'Test';
$var =~ /W(e)lt/;
if ($1) { print $1; }
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
RPerl
 2007-07-22 19:13
#78746 #78746
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Also einfach das Regex direkt in der if.
Ok, danke vielmals und einen schoenen Sonntag noch =)
sid burn
 2007-07-22 20:09
#78747 #78747
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
[quote=RPerl,22.July.2007, 17:13]Also einfach das Regex direkt in der if.
Ok, danke vielmals und einen schoenen Sonntag noch =)[/quote]
Ja,
die Regex selber gibt eine Status zurück ob die Regex erfolgreich gematcht wurde, oder nicht.

Wenn Sie matcht, nur dann werden $1, $2, $3 etc. neu gesetzt.

Ansonsten bleiben $1, $2 etc von letzten erfolgreichen match vorhanden. Wenn $1 also wahr ist, ist es kein Indiz dafür das der letzte Match auch wirklich erfolgreich war.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
<< >> 7 Einträge, 1 Seite



View all threads created 2007-07-22 17:42.