Schrift
[thread]8439[/thread]

Regexp 32 Bit Limitierung (Seite 2)



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
bloonix
 2006-10-20 17:07
#71052 #71052
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
@esskar, zum Beispiel Linux für s390 ist 31 Bit...

Ich weiß nicht, ob es irgendwelche OS mit Perl gibt, die noch weniger
haben... wie schaut es mit Linux für PDA's aus oder für Handies?
Nur mal so als Beispiel...\n\n

<!--EDIT|opi|1161349856-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
betterworld
 2006-10-20 18:22
#71053 #71053
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=renee,20.10.2006, 14:14]
Code: (dl )
1
2
3
4
my $string = 'a' x 50_000 . 'skjd';
my $regexp = qr-^((.){32000}\2{18000})skjd$-;

print "yes\n" if $string =~ /$regexp/;


Edit: natürlich geht'ts noch einfacher:
Code: (dl )
my $regexp = qr-^((.{25000}){2})skjd$-;
[/quote]
Dein erster Ausdruck tut nicht, was Du moechtest, glaube ich. Das liegt daran, dass \2 sich nicht auf den regulaeren Ausdruck (.) bezieht, sondern nur auf den exakten String, den (.) gematcht hat. Es muessten also alle 18001 Zeichen von der 32000ten bis zur 50000ten Stelle gleich sein. (Das ist in Deinem Beispiel der Fall, aber im allgemeinen nicht.)

Vergleiche die folgenden beiden Beispiele:
Code: (dl )
1
2
print "yes0\n" if 'hallooo' =~ /^((.){2}\2{2})/; # Gibt nichts aus
print "yes1\n" if 'haaallo' =~ /^((.){2}\2{2})/; # Gibt yes1 aus
\n\n

<!--EDIT|betterworld|1161354287-->
sid burn
 2006-10-20 18:46
#71054 #71054
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Das sieht für mich nicht nach einer 32bit Begrenzung aus:

32bit = 4.294.967.269
16bit = 65.536

Mit Vorzeichen natürlich von - bis + also immer nur bis zur Hälfte.

32bit = +- 2.147.483.648
16bit = +- 32.768

Sieht für mich also eher nach einer 16bit Limitierung aus. Das sollte eigentlich keine Probleme machen, auch nicht auf 16bit OSe wie Dos, Win95/98.

Linux ist ja eigentlich von Anfang an ein 32bit OS gewesen, ich denke mal auf Handys wird dies ebenfalls ein 32bit CPU sein!? Und wenn es nur 16bit ist, sollte es ja immer noch klappen.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
renee
 2006-10-20 18:55
#71055 #71055
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@betterworld: Du hast recht... Dummer Fehler wenn man nicht richtig testet! man muss einfach das \2 durch . ersetzen...
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/
ptk
 2006-10-21 02:25
#71056 #71056
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=opi,20.10.2006, 15:07]@esskar, zum Beispiel Linux für s390 ist 31 Bit...

Ich weiß nicht, ob es irgendwelche OS mit Perl gibt, die noch weniger
haben... wie schaut es mit Linux für PDA's aus oder für Handies?
Nur mal so als Beispiel...[/quote]
Alle Handys und PDAs, bei denen ich nachgeschaut habe, waren 32-Bit
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2006-10-20 15:52.