Avatar billede selfme Nybegynder
05. november 2013 - 22:03 Der er 3 kommentarer

Regular expression - Matches til strings

Hejsa

Jeg har brug for lidt hjælp til lidt programmering

Hvis jeg har min string som består af oplysninger på 1 eller flere personer, som kan se sådan ud: "Hej, mit navn er Per, og jeg er 12 år gammel og bor i KBH. Hej mit navn er Morten, og jeg er 41 år gammel og bor i Odense. Hej, mit navn er Knud, og jeg er 28 år gammel og bor i Århus."

Hvordan kan jeg så Matche Navn, alder og by for hver af personerne og putte dem ind i strings?

Sådan at jeg kan bruge dem senere og evt. kan skrive dem som jeg ønsker, fx:

Navn: Per
Alder: 12 år
By: KBH

Navn: Morten
Alder: 41 år
By: Odense

Navn: Knud
Alder: 28 år
By: Århus

Og til sidst skrive en samlet alder selvom jeg ikke ved hvor mange personer der findes?

Samlet alder: 81 år
Avatar billede arne_v Ekspert
05. november 2013 - 23:40 #1
Til inspiration:


Imports System
Imports System.Text.RegularExpressions

Namespace E
    Public Class Program
        Public Shared Sub Main(args As String())
            Dim s As String = "Hej, mit navn er Per, og jeg er 12 år gammel og bor i KBH. Hej, mit navn er Morten, og jeg er 41 år gammel og bor i Odense. Hej, mit navn er Knud, og jeg er 28 år gammel og bor i Århus."
            Dim re As New Regex("Hej, mit navn er ([A-Za-zÆØÅæøå]+), og jeg er (\d+) år gammel og bor i ([A-Za-zÆØÅæøå]+)\.", RegexOptions.Compiled)
            For Each m As Match In re.Matches(s)
                Console.WriteLine("Navn: " & m.Groups(1).Value)
                Console.WriteLine("Alder: " & m.Groups(2).Value & " år")
                Console.WriteLine("By: " & m.Groups(3).Value)
            Next
            Console.ReadKey()
        End Sub
    End Class
End Namespace
Avatar billede selfme Nybegynder
06. november 2013 - 01:30 #2
Takker for inspirationen!

Har lavet lidt som jeg ikke rigtig kan komme videre med:

Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim myString As String = "Hej, jeg hedder Per og jeg er 12 år gammel. Jeg bor i KBH."
        Dim myPattern As String = "Hej, jeg hedder (.*) og jeg er (.*) år gammel. Jeg bor i (.*)."
        Dim myMatch As Match = Regex.Match(myString, myPattern)

        Dim name1 As String = myMatch.Groups(1).ToString
        Dim age1 As String = myMatch.Groups(2).ToString
        Dim city1 As String = myMatch.Groups(3).ToString
    End Sub
End Class

_____________________

Det næste jeg mangler, er at den automatisk skal lave de variabler.

Og hvis teksten gentager sig med nye navne, aldre og byer, ville det være perfekt hvis variablen på disse kunne være name1, name2, name3 osv.. og det samme med aldre og byer.

Og alle aldre skal kunne lægges sammen til sidst
Avatar billede selfme Nybegynder
06. november 2013 - 01:42 #3
Det kan også være der er en lettere måde.

Det er fordi jeg skal lave et program som tilføjer en ny fane, for hver gang vi har en ny person.
Navnet på fanen skal være personens navn, og når man klikker sig ind på hver fane, skal oplysninger om personen stå.

Til sidst vil jeg gerne have sådan at jeg kan lægge fx aldrene(bare for at tage en ting.. kunne ligeså godt være deres indkomst) fra alle personerne sammen.
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
Kurser inden for grundlæggende programmering

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