Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Spezzare una stringa

  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Spezzare una stringa

    Ho una stringa così:

    Miastringa: Cod: 100 - Art: Pippo - Tipo: 03 - Giacca - Taglia: M

    vorrei da quella stringa estrapolare solo alcuni dati e inserirli in 3 variabili

    var1 = 100;
    var2 = 03;
    var3 = M;

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
            Dim inizio As String = "Cod: 100 - Art: Pippo - Tipo: 03 - Giacca - Taglia: M"
            Dim articolo() As String = Split(inizio, "-")
            Dim sb As New System.Text.StringBuilder
            Dim proprieta_articoli() As String
    
            For indice As Integer = 0 To UBound(articolo)
                Dim pos As Integer = InStr(articolo(indice), ":")
                If pos > 0 Then
                    sb.Append(Trim(Mid(articolo(indice), pos + 2) & ","))
                End If
            Next
            proprieta_articoli = Split(sb.ToString, ",")
    
            ' Proprietà
            For indice As Integer = 0 To UBound(proprieta_articoli)
                Response.Write(Trim(proprieta_articoli(indice)))
            Next
    in proprieta_articoli avrai "100","pippo","03","M" (è un array di stringhe)

    per non prendere "pippo" non saprei come fare :master:

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <%@ Page Language="VB" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim Pattern$ = "^.+Cod: (\d+).+Art: (\w+).+Tipo: (\d+).+Taglia: (\w+)\s* $"
    
            'definisco la espressione regolare
            Dim re As New Regex(Pattern)
    
            'sorgente
            Dim source$ = "Miastringa: Cod: 100 - Art: Pippo - Tipo: 03 - Giacca - Taglia: M "
            
            'verifico se ho trovato corrispondenza
            Dim IsMatch As Boolean = re.IsMatch(source)
            Me.lbl1.Text = "IsMatch = " & IsMatch & "
    "
            If Not IsMatch Then Exit Sub
    
            'ottengo la collezione delle corrispondenze
            Dim mc As MatchCollection = re.Matches(source)
    
            'visualizzo le corrispondenze trovate
            For Each m As Match In mc
                'Me.lbl1.Text &= "Trovato '" & m.Value & "' alla posizione " & m.Index & "
    "
                Dim gs As GroupCollection = m.Groups
    
                For i As Integer = 1 To gs.Count - 1
                    Dim g As Group = gs(i)
                    Me.lbl1.Text &= "gruppo(" & i & ") = '" & g.Value & "' alla posizione " & g.Index & "
    "
                Next
    
            Next
    
            Dim var1$ = mc(0).Groups(1).Value : PrintLn(var1)
            Dim var2$ = mc(0).Groups(3).Value : PrintLn(var2)
            Dim var3$ = mc(0).Groups(4).Value : PrintLn(var3)
    
    
        End Sub
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            
    
    
    
            <asp:Label ID="lbl1" runat="server" Text="" EnableViewState="false"></asp:Label>
        </form>
    </body>
    </html>
    Pietro

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: ho tempo solo fino a venerdì mattina per leggere la soluzione dello spezzatino di stringa. Dopo lascerò ( speriamo) il computer spento per un mese

    mare... nuotate... bicicletta... dormire alla grande... :rollo:
    Pietro

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.