Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Aiuto: Estrarre un numero da una stringa

    Allora,

    io ho tutta una serie di codici:

    codice:
    A1255468
    BC884542
    A663325
    B2225856
    DC45456
    SD656555
    .......
    fatti così come ho scritto, ovvero un numero variabile di lettere all'inizio e poi una parte numerica alla fine. Come posso fare ad estrarre solo la parte numerica da questo codice? avevo pensao alle REXP ma non sono capace di costruire un pattern adatto. Qualcuno ha idea?

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    codice:
    Function GetNumber(StrIn)
    	Dim Re,Matches
    	Set Re = new RegExp
    	Re.Global=True
    	Re.IgnoreCase = True
    	Re.Pattern = "\w+?(\d+)"
    	Set Matches =  Re.Execute(StrIn)
    	if  Matches.Count>0 then GetNumber = Matches(0).subMatches(0) 
    End Function
    Provala.

    Ciao

  3. #3
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Meglio senza regExp se il formato è certo
    codice:
    Function GetNumber(StrIn)
    Dim Pos,i
    For i=1 to Len(StrIn)
    	Pos = InStr("0123456789",Mid(StrIn,i,1))
    	If Pos>0 then Exit For
    Next
    If Pos>0 then GetNumber=Mid(StrIn,i)
    End Function

  4. #4
    a me serviva tutta la serie di numeri che stava dopo, e allora ho fatto così:
    codice:
    function FindNum(codice)
    dim indice
    indice=0
    i=0
    while indice=0 and not i=len(codice)
    i=i+1
    if isNumeric(mid(codice,i,1)) then
    indice=i
    end if
    wend
    
    if indice>0 then
    FindNum=int(right(codice,len(codice)-(indice-1)))
    else
    FindNum=codice
    end if
    end function
    fa un pò schifo, ma mi ero scordato l'instr fatto come hai fatto te. Mo la modifico con quello

  5. #5
    così va meglio
    codice:
    function FindNum(codice)
    dim indice
    indice=0
    
    for i=1 to len(codice)
     indice=InStr("0123456789",Mid(codice,i,1))
     if indice>0 then exit for
     next
    
    if indice>0 then
    FindNum=int(right(codice,len(codice)-(indice-1)))
    else
    FindNum=codice
    end if
    end function

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.