Schrift
[thread]6960[/thread]

Regulären Ausdruck als Übergabe aus Formular (Seite 2)



<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
Gast Gast
 2005-05-04 17:38
#54580 #54580
Ja, toll. Ich denke genau das ist es. Nur.....wie mache ich das ?
Crian
 2005-05-04 17:39
#54581 #54581
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Sei mal nicht so schlecht gelaunt, wir sind hier kein bezahlter Helpdesk. Ich hab ja die Antwort erst noch ausprobieren wollen, ist inzwischen oben reineditiert.

Statt

Code: (dl )
1
2
3
for ($test) {
eval "$re";
}


kannst Du aber auch

Code: (dl )
   $text =~ eval "$re";


sagen.\n\n

<!--EDIT|Crian|1115214086-->
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
Gast Gast
 2005-05-04 17:41
#54582 #54582
[quote=RiffRaff,04.05.2005, 15:38]Ja, toll. Ich denke genau das ist es. Nur.....wie mache ich das ?[/quote]
upsi - zeitliche Überschneidung.
Vielen Dank soweit, nur....muss dat mit use strict sein ?
Dann wächst die Fehlermeldungsanzahl nämlich auf 20 !?*nerv*
Crian
 2005-05-04 17:44
#54583 #54583
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ja. Natürlich geht es auch ohne, aber gerade die Fehler und Probleme die Die strict meldet, helfen Dir in der Zukunft viel größeren Problemen aus dem Weg zu gehen. Genaueres lies bitte hier nach:

http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict

Ich werde jedenfalls nicht Leuten helfen, die dauerhaft kein strict benutzen und dann uns die Fehler suchen lassen wollen (nur so als Warnung vorweg).
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
Gast Gast
 2005-05-04 17:52
#54584 #54584
you soo right :D - Ich täte es dir gleich.
Naja, ich bin halt ein wenig verzweifelt, da ich als newbie, dessen nerven am seidenen Faden hängen, schon lange lese nüscht funzt. Um auf jeden Fall nicht noch mehr unsinnige 1-Zeiler Posts zu verfassen, mache ich erstmal Pause und setzte mich dann neu dran.
Auf jeden Fall vielen Dank erstma....
Crian
 2005-05-04 17:58
#54585 #54585
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
kein Problem. Ich würd an Deiner Stelle auf jedenfall erstmal die Funktionalitäten in einem normalen nicht-CGI-Skript prüfen, so wie in dem oben, und erst dann in das CGI-Skript einbauen.

Und wenn Du jetzt etwas Zeitaufwand hast um Dich an strict zu gewöhnen denk Dir, dass Du es später hundertfach wieder herausbekommst.

Ich weiß noch wie es mir ging, als ich auf use strict stieß. Ich fand "my" vor meinen Variablen einfach häßlich, es störte mein Sprachgefühl.

Das Sprachgefühl hat sich dann aber angepasst. :)
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
betterworld
 2005-05-04 21:47
#54586 #54586
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Ihr braucht weder qr noch eval!
Code: (dl )
1
2
3
4
5
6
7
8
9
## Zuweisung der Werte zu den Variablennamen
$string = $Formular[1];
$regexstring = $Formular[3];

foreach ($string)
{
$_ =~ $regexstring;
}
$output = $string;


Das funktioniert, wenn man auf Matches testen moechte. Da sollte man dann auch noch den Rueckgabewert pruefen, sonst macht das kaum Sinn.

Wenn man ersetzen moechte, geht das so:
Code: (dl )
1
2
3
4
foreach ($string)
{
s/$regexstring/ersetzen/;
}


Beachte, dass $regexstring in keinem Fall Schrägstriche oder ähnliches braucht.\n\n

<!--EDIT|betterworld|1115229068-->
Dubu
 2005-05-05 01:52
#54587 #54587
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Dass die Formulareintraege da aus einem Array kommen, stimmt mich ja schon mal misstrauisch. Das riecht irgendwie nach einem selbstgestrickten CGI-Parser ... @RiffRaff: Du benutzt doch CGI.pm, oder?

Zum anderen ist mir immer noch unklar, was das Programm tatsaechlich ausgeben soll. Schoen, man kann den $string nach irgendetwas durchsuchen, aber was wird zurueckgeben? Die Anzahl der Treffer? Der/die gefundene(n) Zeichenkette(n)? In welcher Form, vielleicht als Liste oder im vorgegebenen Text hervorgehoben, ...?

Auch der Code von betterworld macht da - sorry - nichts sinnvolles. Die Schleife bleibt ueberfluessig, da es ja nach wie vor nur ein String ist, uber den iteriert wird. Mit dem Ergebnis des Matchings wird gar nichts gemacht, und am Ende wird einfach wieder der Eingabestring ausgegeben (wobei ich mal davon ausgehe, dass HTML-Header etc. schon vorher ausgegeben wurde).

Also, ohne konkretes Ziel koennte ich hier keinen Code vorschlagen.
betterworld
 2005-05-05 02:00
#54588 #54588
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Dubu,04.05.2005, 23:52]Auch der Code von betterworld macht da - sorry - nichts sinnvolles. Die Schleife bleibt ueberfluessig, da es ja nach wie vor nur ein String ist, uber den iteriert wird. Mit dem Ergebnis des Matchings wird gar nichts gemacht[/quote]
Die beiden Punkte sind mir auch aufgefallen --- aber ich habe das ja schliesslich nicht selbst geschrieben, sondern den Code von weiter oben gepastet und nur die Zeile mit dem regulaeren Ausdruck veraendert, um zu demonstrienen, dass es auch ohne qr und eval geht.
Dubu
 2005-05-05 02:49
#54589 #54589
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Schon klar. Dem Fragesteller sollte nur klar sein, dass auch dein Code sein Problem nicht loest. :)
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2005-05-04 14:27.