tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
1524
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Ich bin auf der Suche nach einem Generator, der mir aus der Zeichenkette
    +49.12345.1234567 den passenden RegEx erstellt. Irgendwie blicke ich da nicht durch, gedanklich müsste das so aussehen: +[1-9,2].[0-9,5].[0-9,10].

    Sprichwörtlich also: es muss ein + an erster Stelle sein, anschließend dürfen Zahlen von 1-9 für eine Länge von 2. Anschließend ein Punkt usw..

    Ich habe mir darauf hin folgendes gebaut: [\+][0-9,2][\.][0-9]{2,5}[\.][0-9]{3,10}

    Kann mir da jemand helfen?
    Geändert von tequila slammer (01.11.10 um 14:39 Uhr)
     

  2. #2
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    So?

    Code :
    1
    
    \+[1-9]{2}\.[1-9]{5}\.[1-9]{7}
     

  3. #3
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Ach so ich hatte vergessen zu schreiben, dass damit quasi eine Telefonnummer einen bestimmten Aufbau vorweisen soll.

    @Masterclavat: Deine Lösung sieht aus wie meine, nur das du ein die eckigen Klammern um die Zeichen + und . weggelassen hast. Hat das einen Grund?
     

  4. #4
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Wenn du ohne hin nur ein Zeichen an der Stelle haben willst, kannst du dir die eckigen Klammern auch sparen.
     

  5. #5
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Ah, ok. Ich stelle nun fest, dass der grundsätzliche Aufbau stimmt, ich aber auch Buchstaben in der letzten Sequenz( [0-9]{3,10} ) eingeben kann?
     

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    So einen Generator kann es nicht geben. Er müßte ja quasi raten welches Format mit deinem Beispielstring gemeint sein könnte. (trivial wäre es einen reg. Ausdruck zu generieren, der *genau* mit dem Beispielstring übereinstimmt).

    Grundsätzlich: entweder du entwertest Metazeichen mit einem Backslash:

    \.

    oder du notierst das Metazeichen in einer Zeichenklasse:

    [.]

    Eine Kombination aus beidem ist unnötig.

    [a-z0-9]{3,10}?

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  7. #7
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Sorry das ich erst jetzt wieder antworten kann. Vielen Dank für die Hinweise zum Thema RegEx.
    @deepthroat: [a-z0-9] erlaubt explizit Zeichen von a-z und Zahlen von 0-9. Ich möchte aber nur Zahlen zulassen.
     

  8. #8
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von tequila slammer Beitrag anzeigen
    Sorry das ich erst jetzt wieder antworten kann. Vielen Dank für die Hinweise zum Thema RegEx.
    @deepthroat: [a-z0-9] erlaubt explizit Zeichen von a-z und Zahlen von 0-9. Ich möchte aber nur Zahlen zulassen.
    Du widersprichst dir irgendwie selbst:
    Zitat Zitat von tequila slammer
    ich aber auch Buchstaben in der letzten Sequenz( [0-9]{3,10} ) eingeben kann?
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  9. #9
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Ich widerspreche mir nicht.


    Zitat Zitat von tequila slammer Beitrag anzeigen
    Ich stelle nun fest, dass der grundsätzliche Aufbau stimmt, ich aber auch Buchstaben in der letzten Sequenz( [0-9]{3,10} ) eingeben kann?
    Zitat Zitat von tequila slammer Beitrag anzeigen
    Ich möchte aber nur Zahlen zulassen.
     

  10. #10
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von tequila slammer Beitrag anzeigen
    Ich widerspreche mir nicht.
    Aha, dann hast du dich aber etwas ungenau ausgedrückt.

    Vermutlich verwendest du die Match Methode. Diese führt allerdings (anders als ihr Name vermuten läßt) eine Suche und keinen Match durch.

    Du mußt den reg. Ausdruck "verankern" und sicherstellen, das der gesamte String übereinstimmen muss, und nicht nur irgendein Teilstring.
    Code :
    1
    
    ^\+[1-9]{2}\.[1-9]{5}\.[1-9]{3,10}$
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  11. #11
    tequila slammer tequila slammer ist offline Mitglied Gold
    Registriert seit
    Aug 2006
    Beiträge
    204
    Ja ich nutze die Match Methode. So wie du ihn mir geschrieben hast wird er verankert?
    Geändert von tequila slammer (13.11.10 um 14:51 Uhr)
     

  12. #12
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von tequila slammer Beitrag anzeigen
    Ja ich nutze die Match Methode. So wie du ihn mir geschrieben hast wird er verankert?
    Warum probierst du es nicht einfach aus?

    Oder schaust dir die Unterschiede an.

    http://www1.uni-hamburg.de/W.Wiedl/S...EIntro.htm#1.6

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 22.11.10, 17:31
  2. Regex für String.split(regex)
    Von anti43 im Forum Java
    Antworten: 3
    Letzter Beitrag: 22.11.10, 12:14
  3. Antworten: 3
    Letzter Beitrag: 30.10.10, 01:58
  4. Antworten: 8
    Letzter Beitrag: 25.06.10, 12:07
  5. Antworten: 1
    Letzter Beitrag: 21.01.08, 16:58