visual basic 2010 regex geldbeträge

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RushDen.

    visual basic 2010 regex geldbeträge

    Guten tag zusammen,
    ein habe ein Problem und zwar wollte ich mit dem Befehl...

    VB.NET-Quellcode

    1. Dim Input As String = RichTextBox1.Text
    2. Dim matchColl As MatchCollection
    3. Dim match As Match
    4. matchColl = Regex.Matches(Input, "[0-9][0-9],[0-9][0-9]")
    5. For Each match In matchColl
    6. TextBox1.Text = TextBox1.Text & (match3.Value)
    7. Next


    jetzt habe ich jedoch ein Problem denn es werden nur 2 ställige eurobeträge gefunden aber ich brauche auch einställige und 3 ställige eurobeträge.

    kann mir wer sagen was ich auser "[0-9][0-9],[0-9][0-9]" benutzen kann dammit alle beträger die kleiner als 1000,00 gefunden werden?

    danke für alle nützlichen antworten :)
    Gib mal ein Beispieltext und was daraus gefunden werden soll.

    und sowas wie:

    Ist immer ein ',' zwischen Euro und Centbetrag (oder ist manchmal auch 55€ bzw 55.50€?)
    Ist ein € zeichen dannach? oder steht da "euro" nachdem betrag? oder gar nichts?
    Ist der Text immer ein anderer?

    bzw guck hier:

    C#-Quellcode

    1. private void button1_Click(object sender, EventArgs e)
    2. {
    3. string lBeispiel = string.Format("Der Preis für diesen Artikel beträgt: {1}{0}Der andere Artikel hat einen Preis von {2} (runtergesetzt von {3}){0}Der letzte Artikel (Artikelnummer 45) hat einen Preis von {4}",Environment.NewLine,"45,55€","50,99","60,00 €","9912,99 €");
    4. string[] lFound = lBeispiel.Split(new string[] { " ", "€" }, StringSplitOptions.None).Where(IsDecimal).ToArray();
    5. foreach (var item in lFound)
    6. {
    7. MessageBox.Show(item);
    8. }
    9. }
    10. private bool IsDecimal(string pText)
    11. {
    12. string[] lSplitted = pText.Split(',');
    13. decimal lDecimal = 0;
    14. return lSplitted.Length == 2 && decimal.TryParse(pText, out lDecimal) && lSplitted[0].Length <= 3 && lSplitted[1].Length == 2;
    15. }

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „RushDen“ ()