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

regulären ausdruck in variable (Seite 2)

Leser: 4


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Dubu
 2003-09-10 11:36
#49794 #49794
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=stevg,10.09.2003, 09:16]so?
$x = qr{/blabla/};[/quote]
Da sind zu viele Delimiter.
Code: (dl )
1
2
3
4
5
$x = qr[blabla];
# oder
$x = qr/blabla/;
# oder auch
$x = qr'blabla';
stevg
 2003-09-10 12:15
#49795 #49795
User since
2003-09-02
11 Artikel
BenutzerIn
[Homepage] [default_avatar]
und was ist ?
use strict;
use warnings;
format_c
 2003-09-10 12:42
#49796 #49796
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Dubu,10.09.2003, 09:35][quote=format_c,10.09.2003, 08:57]Der Regex sucht in einer Zeichenkette entweder begriff1 oder begriff2 oder begriff 2.
aber einbegriff1 würde er nicht matchen. Ohne die \b's jedoch schon.[/quote]
Dann sollte man es aber auch richtig anwenden.
Deine Regex passt auf "\bbegriff1" oder "begriff2" oder "begriff3\b". Wenn du die Wortgrenzen komplett um $begriffe haben moechtest, musst du Klammern setzen.[/quote]
Stimmt. Danke für den Fingerzeig.

Gruß Alex
Crian
 2003-09-10 14:36
#49797 #49797
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=format_c,10.09.2003, 08:57]@havi:Wortgrenzen. Ist nur ein Beispiel.
Der Regex sucht in einer Zeichenkette entweder begriff1 oder begriff2 oder begriff 2.
aber einbegriff1 würde er nicht matchen. Ohne die \b's jedoch schon.

Das Beispiel ist nur aus der Luft gegriffen. Wollte ihm halt noch einen Hauch von Sinn verpassen.

Gruß Alex[/quote]
Leider tut /\bwort1|wort2|wort3\b/ nicht das, was Du möchtest, es sei denn Du suchst nach wort1, vor dem eine Wortgrenze steht oder nach wort2 oder nach wort3 auf das eine Wortgrenze folgt.

/\b(?:wort1|wort2|wort3)\b/ hingegen tut das, was Du - wahrscheinlich - wolltest.

Edit: Ich seh gerade, dass Dubu darauf schon hingewiesen hat - sorry.\n\n

<!--EDIT|Crian|1063190349-->
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
Dubu
 2003-09-10 19:44
#49798 #49798
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=stevg,10.09.2003, 10:15]und was ist  ?
use strict;
use warnings;[/quote]
Das sind TUeV und Warnlampe fuer deinen Perlcode.

strict prueft schon bei der Kompilierung, ob du alle Variablen deklariert hast und keine Barewords benutzt, und waehrend der Laufzeit, dass du keine boesen symbolischen Referenzen benutzt. Das Programm wird dann jeweils abgebrochen.

warnings prueft waehrend der Laufzeit auf verschiedene Zustaende, die normalerweise unbeabsichtigt auftreten, wie undefinierte Variableninhalte, lesen von geschlossenen Filehandles, numerischen Vergleichen mit nicht-Zahlen und vielem anderen. Das Programm gibt eine Warnung auf STDERR aus und laeuft weiter (wenn man es nicht anders vorgibt). Mit use diagnostics bekommt man sogar einen erklaerenden Text zu der Warnung.

Es gibt wohl kaum jemanden, der ein laengeres Perl-Programm schreibt, ohne diese beiden Pragmas zu benutzen, denn sie erleichtern ungemein die Fehlersuche. Es zeigt auch guten Programmierstil, wenn ein Programm unter strict und warnings klaglos laeuft.
[E|B]
 2003-09-10 20:03
#49799 #49799
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=stevg,10.09.2003, 10:15]und was ist  ?
use strict;[/quote]
*lol*
Der Thread stand eben einen Beitrag oben drüber!
http://board.perl-community.de/cgi-bin....0;#idx3 *gg* ;)\n\n

<!--EDIT|[E|B]|1063209848-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2003-09-11 16:02
#49800 #49800
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Man kann die Vorzüge von use Strict bzw. geskopter Variablen gar nicht oft genug preisen ;-)
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 >| >> 17 Einträge, 2 Seiten



View all threads created 2003-09-10 10:25.