PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Regulärer Ausdruck...



Escorte
23-05-2001, 10:28
Hallo zusammen!

Ich bin dabei regex zu lernen, habe aber ein Problem auf dessen lösung ich nicht komme.

Ich habe in einer Variablen einen String "xxxx.yyy.txt"
Jetzt will ich das yyy herausfiltern, dass ich hinterher nur noch "xxxx.txt" übrig habe. Wie geht das?

Danke!
ESC

Escorte
23-05-2001, 10:40
Der Ausdruck für "ich will alles vom Anfang bis zum Punkt wäre doch:

/^(\S+)\.\1/

mit dem \1 stelle ich nen Rückbezug her, aber in welcher Variablen steht dann der String? $1??? Oder wie muss der komplette Perl-Befehl lauten?????? help...

Escorte
23-05-2001, 12:27
Meine Frage war wohl falsch formuliert, ich verbessere mich mal:

Ich habe in einer Variablen $eingabe einen String "xxxx.yyy.txt"
Jetzt will ich das yyy herausfiltern, dass ich hinterher eine variable $ausgabe mit dem Inhalt "xxxx.txt" übrig habe. Theoretisch würde mir eine Variable $ausgabe mit dem Inhalt "xxxx" schon reichen, .txt kann man in Perl ja ganz einfach "ankleben"!
Wie geht das?

Ich habe auch noch Probleme mit der generellen regex Handhabung, wenn mir jemad sagt: "Nimm /^\S+\.(\S+)\./ !" bringt mich das auch nicht viel weiter, wo ist denn da die Eingabe? Ok, Eingabe habe ich in $_ aber wenn da nix drinsteht?

mightymike99
23-05-2001, 21:55
Hi,

ich kanns jetzt leider nicht ausprobieren, und mein Perl ist so gut wie mein französich)aber ich wuerd' sagen:

<code>
$search="yyy";
s/$search//;
</code>
oder falls die von mir vermutete Kurzform nicht geht:
<code>
$ohneyyy=~s/$search//;
</code>

Gruß
Tobias

TommeS73
23-05-2001, 22:59
Hi Escorte,

bei den regulären Ausdrücken kann ich Dir nicht helfen. Da Du allerdings einen Code für PERL suchst, würde ich mal nachfolgendes ausprobieren:


#!/usr/bin/perl
$name = "yyy.xxxx.txt";
($a,$b,$c) = split (/\./,$name);
$ausgabe = "$b.$c";
print "$ausgabe";


mfg
Thomas

rbla
23-05-2001, 23:55
/^\S+\.(\S+)\./

dein yyy ist dann in $1

das mit den rückbezügen ist mir zu kompliziert, und ich bin auch nicht sicher, ob das so geht

[ 23. Mai 2001: Beitrag editiert von: Ronny Buchmann ]