Benutzer mit den meisten Antworten
Suche Zahl im String an unbekannter Position

Frage
-
Hallo Experten,
ich habe einen String in dem eine 6 stellig Zahl steht, diese möchte ich nun herauslesen/extrahieren.
Beispiel
Dim Quelle$ as string ="Test 12 Test test Test 567 Test Test Test 123456 Test test 125 Test 12"
Wie kann ich nun die Zahl 123456 finden? Mir ist nicht bekannt wo im String die Zahl steht noch wie groß sie ist. Mir ist nur bekannt das sie zwischen 100000 und 999999 liegt also 6 Stellen hat.
Danke im voraus mfg eem monarch
Antworten
-
Hi,
mit einem regulären Ausdruck lässt sich die Frage einfach lösen:Imports System.Text.RegularExpressions Module Module1 Sub Main() Dim Quelle As String = "Test 12 Test test Test 567 Test Test Test 123456 Test test 125 Test 12" Dim res = (New Regex("\d{6}")).Match(Quelle) Console.WriteLine(res.Value) Console.ReadKey() End Sub End Module
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Montag, 5. August 2013 11:18
- Als Antwort markiert Monarch-Falter Mittwoch, 7. August 2013 16:39
Alle Antworten
-
Hi,
mit einem regulären Ausdruck lässt sich die Frage einfach lösen:Imports System.Text.RegularExpressions Module Module1 Sub Main() Dim Quelle As String = "Test 12 Test test Test 567 Test Test Test 123456 Test test 125 Test 12" Dim res = (New Regex("\d{6}")).Match(Quelle) Console.WriteLine(res.Value) Console.ReadKey() End Sub End Module
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Montag, 5. August 2013 11:18
- Als Antwort markiert Monarch-Falter Mittwoch, 7. August 2013 16:39
-
Hallo Monarch,
da ist RegularExpression Dein Freund.
Dim regex As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex("(\d{6})") Dim Quelle As String = "Test 12 Test test Test 567 Test Test Test 123456 Test test 125 Test 12" Dim match As System.Text.RegularExpressions.Match = reg.Match(Quelle) If match.Success Then Dim value As String = match.Groups(1).Value Dim position As Integer = match.Groups(1).Index End If
Hannes
If you have got questions about this, just ask.
In a perfect world,
users would never enter data in the wrong form,
files they choose to open would always exist
and code would never have bugs.
My Forum Threads -
Hi,
Du suchst also nicht den String an sich, sondern das Muster für sechs aufeinanderfolgende Zahlen?
Das lässt sich am einfachsten mit Regex lösen.
Dim Source As String = "Test 12 Test test Test 567 Test Test Test 123456 Test test 99999 125 444444 Test 12" For Each Item As Match In Regex.Matches( Source, "\b\d{6,6}\b" ) TextBox1.AppendText( Item.Value & ControlChars.NewLine ) Next
Der obige Ausdruck sorgt dafür, dass Du auch mehr als eine 6-stellige Zahl im String erkennen kannst. Voraussetzung dafür ist, dass die Zahl von Wortbegrenzern, bspw. Leerzeichen, Komma, Punkt, ... umgeben ist.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Montag, 5. August 2013 11:53 Grund 2
-
Hallo Monarch,
Wenn dir Die Antworten geholfen hat, dann bitte markiere diese als Antwort.
Danke und Gruss,
Ionut
Ionut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.