Schrift
[thread]11624[/thread]

Regulärer Ausdruck!



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Gast Gast
 2008-04-11 23:50
#108235 #108235
Hallo Leute!

Möchte aus dem Strin " Diese Oma ist einfach die Beste Oma" feststellen ob es Wörter zwischen 5 und 8 Buchstaben gibt.Habe hier mal dne folgenden Quelltext:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
#! perl -w
$a='Di Oma ist die beejkkkkkkkkkkkkkkkkkkkkkkk oma!';


if($a=~/om/)
{print " Ausdruck gefunden(om)!\n\n" ;}
else { print "Nichts gefunden!\n\n"; }

if($a=~/\w{5,8}/)
{print " Wort mit Länge von 5 bis 8 Zeichen gefunden!\n\n" ;}
else { print "Nichts gefunden!\n\n"; }



Das Problem an der Sache ist halt es findet wörter ab 5 Zeichen diese können aber auch länger sein als 8 Zeiochen und es geht trotzdem. Könnt ihr mir einen Tipp geben?Dankeee!!
betterworld
 2008-04-11 23:58
#108236 #108236
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Eine Wortgrenze kannst Du mit \b matchen.
taikahn22a
 2008-04-12 01:14
#108245 #108245
User since
2008-04-12
12 Artikel
BenutzerIn
[default_avatar]
SO habe nun folgendes:

Code (perl): (dl )
1
2
3
4
5
6
if($a=~ /\w{5,8}\b/)
{
print " Wort mit einer Länge von Zeichen gefunden!\n\n" ;

}
 else { print "Nichts gefunden!\n\n";}



das blöde teil findet aber nun immer noch wörter die länger als 8 zeochen sind... :-(
betterworld
 2008-04-12 01:38
#108246 #108246
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Du solltest am Anfang von Deinem RE auch noch ein \b einbauen, dann muesste es gehen.
taikahn22a
 2008-04-12 01:47
#108247 #108247
User since
2008-04-12
12 Artikel
BenutzerIn
[default_avatar]
Habe das mal verscuht! Aber dann spuckt er mir nur Fehler aus....
betterworld
 2008-04-12 04:16
#108249 #108249
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
taikahn22a+2008-04-11 23:47:39--
Habe das mal verscuht! Aber dann spuckt er mir nur Fehler aus....

Zeig mal...
taikahn22a
 2008-04-12 14:26
#108256 #108256
User since
2008-04-12
12 Artikel
BenutzerIn
[default_avatar]
So siehts aus.... Aber dan mekert immer der Compiler rum... :-((((


Code (perl): (dl )
1
2
3
4
5
6
if($a=~ /\b[\w]\b{5,8}/)
{
print " Wort mit einer Länge von Zeichen gefunden!\n\n" ;

}
 else { print "Nichts gefunden!\n\n";}
renee
 2008-04-12 14:42
#108257 #108257
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach mal /\b\w{5,8}\b/
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/
taikahn22a
 2008-04-12 15:10
#108258 #108258
User since
2008-04-12
12 Artikel
BenutzerIn
[default_avatar]
Mhh geht auch ncith.... Spukt auch Fehler aus... Zum verzweifeln hier...
betterworld
 2008-04-12 15:15
#108259 #108259
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
taikahn22a+2008-04-12 12:26:31--
Code (perl): (dl )
if($a=~ /\b[\w]\b{5,8}/)

Hier steht {5,8} ja nach \b, das bedeutet 5 bis 8 Wortgrenzen... Du musst Dir darueber klar werden, was Du willst, und Du willst offenbar: Eine Wortgrenze, dann 5 bis 8 Wortzeichen, dann wieder eine Wortgrenze.
Ausserdem braucht man keine Klammern um \w.
Aber renee hat ja schon geschrieben, wie Du es schreiben solltest.
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2008-04-11 23:50.