tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
917
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    wpb wpb ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    172
    Hallo!

    Ich hab ein kleines Problem mit einer Regex.
    Ich würder gerne überprüfen, ob ein Text folgende
    For hat: zahl,zahl oder zahl-> Bsp.: 1,2; 1; 2;0; ...

    Bis jetzt hab ich mal das: Regex myRegex = new Regex("^[0-9]*");

    Aber wie mach ich weiter?
     

  2. #2
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Hallo,
    Wenn mich nicht alles täuscht wisst du Zahlen und Kommazahlen erlauben?
    Dann brauchst du
    Code :
    1
    
    "\\d+(,\\d+)?"
    Das heißt:
    \\d+ --> Mindestens eine Ziffer
    (,\\d+)? --> Ein Beistrich gefolgt von mindestens einer Zahl, und das 0 oder 1 mal

    Zu deinem Regex: ^ bedeutet nicht, das heißt du suchst derzeit nach allem außer Ziffern
    Geändert von Steiner_B (30.09.11 um 20:21 Uhr) Grund: Tippfehler
     

  3. #3
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Zitat Zitat von Steiner_B Beitrag anzeigen
    Zu deinem Regex: ^ bedeutet nicht, das heißt du suchst derzeit nach allem außer Ziffern
    Das ist falsch. Es markiert in diesem Fall den Anfang des Strings (oder im multiline-mode den Anfang einer Zeile). Dein Ausdruck ist an sich aber OK, aber ihm fehlt eben diese markierung. Dein Ausdruck wird auch "foo1,5bar" akzeptieren, weil "1,5" darin vor kommt.

    Der Ausdruck muss lauten

    ^\d+(,\d+)?$
    oder um bei seiner Schreibweise zu bleiben

    ^[0-9]+(,[0-9]+)?$
    Code

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    using System;
    using System.Text.RegularExpressions;
     
    class Program {
        
        static void Main(string[] argv) {
            Regex rx;
            
            rx = new Regex(@"\d+(,\d+)?");
            
            //True
            Console.WriteLine(rx.IsMatch("foo1,5bar"));
            
            rx = new Regex(@"^\d+(,\d+)?$"); //= new Regex(@"^[0-9]+(,[0-9]+)?$")
            
            //False
            Console.WriteLine(rx.IsMatch("foo1,5bar"));
            
            //True
            Console.WriteLine(rx.IsMatch("1,5"));
        }
    }
     

Ähnliche Themen

  1. RegEx Generator, vom String zum RegEx?
    Von tequila slammer im Forum .NET Café
    Antworten: 11
    Letzter Beitrag: 15.11.10, 07:58
  2. Antworten: 8
    Letzter Beitrag: 25.06.10, 12:07
  3. Antworten: 1
    Letzter Beitrag: 21.01.08, 16:58
  4. [RegEx] Hilferuf eines RegEx-Desperados
    Von ManicMarble im Forum Coders Talk
    Antworten: 15
    Letzter Beitrag: 16.06.05, 08:49
  5. Parsing: RegEx mit '&', RegEx-Kenner gefragt
    Von Kachelator im Forum PHP
    Antworten: 8
    Letzter Beitrag: 21.04.04, 09:16