Schrift
[thread]6413[/thread]

einen string auf inhalt überprüfen



<< >> 7 Einträge, 1 Seite
Tobias Heise
 2004-07-20 01:42
#84608 #84608
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo!
Mich würde mal interessieren wie man einen String darauf überprüfen ob er nur Zeichen enthält.
Dabei ist macht mir das: "\n" am meisten Probleme, kann man das nicht irgednwie austellen? Gibt es nicht irgendwie sowas wie: überprüfe auf vernünftige Zeichenfolge?
Also zumindest sowas ähnliches. :)
Oder was mir auch noch helfen würde, wenn man ein quasi leeres Element aus einem Array löschen könnte, aber dann hätte man bestimmt auch wieder die selben Probleme wie mit dem String, ach alles kompliziert.

Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken, ist schon etwas spät ...
renee
 2004-07-20 01:50
#84609 #84609
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was ist denn ein "quasi leeres Element" in einem Array??
Welche Zeichen sollen denn erlaubt sein??
Was verstehst Du unter "vernünftiger Zeichenfolge"??

z.B.:
Code: (dl )
1
2
3
if($string !~ /[\s\n\r]/){
print '$string enthält keine Whitespaces und keine Newlines!';
}
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/
kabel
 2004-07-20 01:54
#84610 #84610
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
das einfachste sind wohl reguläre ausdrücke.
mit regulären ausdrücken kannst du tests durchführen, ob der string eine gewisse form hat oder nicht.

hier eine einführung in reguläre ausdrücke
http://www.perldoc.com/perl5.8.4/pod/perlrequick.html
-- stefan
[E|B]
 2004-07-20 01:58
#84611 #84611
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
HiHo!
Mit Zeichen meinst du bestimmt Wortzeichen, nehm ich mal an.

Code: (dl )
print "Nur Wortzeichen" if $string =~ /^\w$/;
\n\n

<!--EDIT|[E|B]|1090274340-->
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]
Tobias Heise
 2004-07-20 02:08
#84612 #84612
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
@renee
Ja, genau, sowas hab ich gesucht, hab auch grade noch n anderen Fehler in meinem Script gefunden, jetzt geht es hoffentlich!

@kabel
Ich werds mir mal zu gemüte führen, obwohl mir davon schlecht wird, ich möchte mal wissen wie die Leute aussehen die das programmiert haben :p
kabel
 2004-07-20 02:31
#84613 #84613
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
von außen sieht es tatsächlich aus wie black magic...
aber die regulären ausdrücke sind tatsächlich nur die spitze des eisbergs --
es geht schlimmer, wesentlich schlimmer ...
aber ich will dir ja den spass nicht verderben.

es ist einfacher als du denkst. :)
-- stefan
Crian
 2004-07-20 14:44
#84614 #84614
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Wenn Dich Zeichenumbrüche stören, ist die Funktion chomp vielleicht interessant. Diese schneidet das letzte Zeichen des übergebenen Strings (...) ab, falls dieses ein Zeilenumbruch ist.

Sehr praktisch, wenn man Dateien einliest und die Umbrüche weg sollen.

Etwa:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $datei = '/home/crian/fette_datei.txt';
open (IN, $datei) or die "Kann '$datei' nicht öffnen ($!).";
while (<IN>) {
chomp; # Umbruch wegschmeißen
next if m/^\s*$/; # nächste Zeile, falls diese leer ist
next if m/^\s*#/; # Nächste Zeile, falls Zeile Kommentar ist

.... # tu was mit dieser Zeile (Inhalt ist in der Variablen $_)

}
close IN or warn "Kann '$datei' nicht schließen ($!).";


(ungetestet aber modulo Tippfehler richtig)\n\n

<!--EDIT|Crian|1090320545-->
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
<< >> 7 Einträge, 1 Seite



View all threads created 2004-07-20 01:42.