Avatar billede avest Nybegynder
04. december 2002 - 14:10 Der er 3 kommentarer

Numerisk værdi fra blandet tekststreng

Jeg vil genre trække den numeriske værdi ud fra en tekststreng.

"abc15def" = 15
"abc15" = 15
"15abc" = 15

Problemet er at jeg ikke ved præcis hvor tallet står, men heldigvis står der kun ét tal.

Er der en med en god idé

Det foregår på en SAS-server, men mon ikke SQL nogenlunder er SQL.
Avatar billede kennie_nm Nybegynder
04. december 2002 - 20:23 #1
hvis du har adgang til et programmeringssprog, der understøtter regulære udtryk, kan du fange tallet med udtrykket /\d+/
Avatar billede avest Nybegynder
10. marts 2003 - 12:45 #2
Jeg har overvejet at benytte

TRANWRD(EfTables_Elevhistorik_.Klasse,'G','')

for alle bogstaver, men det er jo lidt besværligt.
Avatar billede lens Nybegynder
28. juli 2003 - 00:58 #3
Det er en hurtig løsning, men løkken i dette lille program kan ihvertfald udføre opgaven:

LOG:
137  data _null_;
138      input string $;
139      numtal=0;
140      do i=1 to length(string);
141          charvar=substr(string,i,1);
142          if charvar ge '0' and charvar le '9' then numtal=numtal*10+input(charvar,1.);

143      end;
144      put 'Strengen: "' string '" indeholder tallet: ' numtal;
145      datalines;

Strengen: "abc15def " indeholder tallet: 15
Strengen: "abc15 " indeholder tallet: 15
Strengen: "15abc " indeholder tallet: 15
NOTE: DATA statement used:
      real time          0.01 seconds
      cpu time            0.01 seconds


149  run;

Du skal være opmærksom på, at hvis der optræder numeriske tegn adskilt af chartegn i din streng så vil det blive til eet langt tal. F.eks. bliver '23trut5' til 235.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester