[PERL] Hoofdletters tellen

Pagina: 1
Acties:

  • Klaus_1250
  • Registratie: December 2000
  • Laatst online: 04-08 11:42
Ik moet in een string hoofdletters tellen. Op zich niet zo moeilijk dacht ik:

code:
1
$testCapitals = ($test =~ tr/A-Z//);


Maar helaas, dat werkt niet goed met Unicode.
Dat is eigenlijk de enigste goede (niet dus) manier die ik weet. Met Google kom ik ook niet verder.
Iemand anders ideeen?

[ Voor 28% gewijzigd door Klaus_1250 op 19-06-2003 12:24 ]


  • Klaus_1250
  • Registratie: December 2000
  • Laatst online: 04-08 11:42
Found it (I think). Als iemand iets beters weet als:

code:
1
foreach($test =~ /[[:upper:]]/g){$testCapitals++;}


hoor ik het graag...

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
Dat is een prima oplossing, al is 't misschien een beetje zonde om hier een reguliere expressie voor te gebruiken. Je zou ook per karakter POSIX::isupper (of gewoon /[[:upper:]]/) kunnen toepassen; je hoeft dan geen reguliere expressies te compileren en uit te voeren, en je string blijft ongewijzigd. Uiteindelijk maakt het allemaal weinig uit, natuurlijk.