Schrift
[thread]7311[/thread]

bräuchte hilfe bei einem regulären Ausdruck (Seite 2)



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Strat
 2005-09-28 17:08
#58424 #58424
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@renee: machen wir einen club auf? z.B. TUPC, The Unheard Perl Coders...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2005-09-28 17:23
#58425 #58425
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ok, nächsten Dienstag Gründungstreffen 19 Uhr Café Activ Frankfurt...
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/
Strat
 2005-09-28 17:50
#58426 #58426
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@renee: da muesste ich zeit haben. abgemacht. Du Chef, ich auslaender. nix verstehn, nix zuhoeren ;-)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Matze
 2005-09-29 16:57
#58427 #58427
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja, das war vielleicht etwas unverständlich, der Code oben.
Also, ich überprüfe eine Eingabe darauf ob am Anfang pl oder ptk staht und dann ein Leerzeichen kommt. Ausserdem soll danach noch eine Datei angegeben werden, mit der Endung .pl oder .ptk.
Diese Datei möchte ich dann ausführen.
Wäre das dann in $3 ? $4 ? oder doch $5 enthalten ?? ???
Ich gehe davon aus, das der Dateiname keine Leerzeichen enthaellt. Da ich das Programm soweiso nur so als Test geschrieben habe, hat das auch keine Bedeutung.
Ich denke ioch splitte jetzt aber einfach die Eingabe anhand von " ", dann kommt das gleiche für mich dabei rum.

Danke schon mal für die Antworten. werde wohl ab jetzt ein wenig vorsichtiger mit $1, $2, ... sein.

MfG. Matze
Mit freundlichen Grüßen: Matze
Strat
 2005-09-29 17:15
#58428 #58428
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
teste mal:
Code: (dl )
1
2
3
if ( $var =~ /^(pl|ptk) (\w+\.\1)$/) {
my ($mode, $program) = ($1, $2);
}

oder:
Code: (dl )
1
2
3
if ( $var =~ /^(pl|ptk) (\w+\.(?:pl|ptk))$/) {
my ($mode, $program) = ($1, $2);
}

(...) speichert
(?: ... ) gruppiert, speichert aber nicht.

\w enthaelt die Zeichen a-zA-Z0-9_ wenn der name deines perl-scriptes noch andere zeichen enthaelt, musst du die eventuell hinzufuegen, oder tatsaechlich mit .+ oder aehnlichem arbeiten...\n\n

<!--EDIT|Strat|1127999861-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Dubu
 2005-09-29 17:28
#58429 #58429
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Matze,29.09.2005, 14:57]Wäre das dann in $3 ? $4 ? oder doch $5 enthalten ?? ???[/quote]
Du kannst einfach die oeffenenden speichernden Klammern in einem regulaeren Ausdruck von vorne durchzaehlen. Sie werden entsprechend $1, $2 etc. zugeordnet.

Nehmen wir an, das Muster /(a(bc)(de(f)))/ wuerde matchen, dann erhaelt man
abcdef in $1,
bc in $2,
def in $3 und
f in $4.
Matze
 2005-09-29 22:41
#58430 #58430
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Dubu danke! wegen der ineinander gesetzten Klammern wusste ich nicht in welcher Variablen es gespeichert war.

@Strat danke! Ich werde allerdings bei .+ bleiben, da, wie du gesagt hast, andere Zeichen auch noch anzutreffen sind.

Danke nochmal an alle für die Antworten!

MfG. Matze
Mit freundlichen Grüßen: Matze
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2005-09-27 20:32.