CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
19.07.2017, 14:50:37
|
Anfänger
|
|
Registriert seit: Oct 2007
Beiträge: 49
|
|
regExp für Zahlenblöcke mit Trennzeichen
Hallo,
ich stehe manchmal echt auf dem Schlauch was reguläre Ausdrücke angeht und tue mich da auch echt schwer, daher muss ich mal nachfragen, vermutlich nur ein Klacks.
Ich habe einen String zu prüfen auf folgende Eigenschaft(en):
- Es sind nur Zahlenblöcke erlaubt die 9 stellig sind
- Es ist als Trennzeichen zwischen den Blöcken nur ein Semikolon erlaubt.
Also derzeit sieht die Abfrage wie folgt aus:
PHP-Code:
if (!preg_match("/^[0-9;]{9,}$/", $zwert)) ...
Das klappt nicht ganz, wenn $zwert nur einen Block ungleich 9 Zahlen hat dann schlägt er an, auch wenn statt dem Semikolon ein anderes Zeichen verwendet wird, aber wenn mehrere Blöcke vorkommen, dann prüft er das mit der 9-stelligen Zahl nicht mehr richtig, kann mir da jemand sagen was ich verändern muss?
Bsp:
- 123456789 ok
- 123456 nicht ok
- 123456789#123456789 nicht ok
- aber 123456789;1234 oder 123;123456789 ist auch ok und das passt nicht
|
26.07.2017, 10:36:21
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: regExp für Zahlenblöcke mit Trennzeichen
ich versteh' die Anforderung nicht. Sollen jetzt 4 Zahlen angenommen werden oder nicht? Sind deine Beispiele Ist- oder Sollwerte? Ist da schon deine Negierung mit einbezogen?
|
26.07.2017, 16:49:38
|
Anfänger
|
|
Registriert seit: Oct 2007
Beiträge: 49
|
|
AW: regExp für Zahlenblöcke mit Trennzeichen
Hallo,
sollte ich mich unklar ausgedrückt haben tut es mir leid.
also der preg_match() Ausdruck soll prüfen ob der String wirklich nur aus x-beliebig vielen 9er(!) Zahlenblöcken besteht, die auch nur mit einem Semikolon getrennt sein dürfen.
Die Negierung (also trifft eben nicht zu) dessen erzeugt dann halt eine Fehlermeldung für den User.
|
16.08.2017, 13:08:55
|
Anfänger
|
|
Registriert seit: Oct 2007
Beiträge: 49
|
|
AW: regExp für Zahlenblöcke mit Trennzeichen
Hallo,
würde den Beitrag gerne mal pushen, ist das denn wirklich so schwer?
Das hätte ich jetzt gar nicht gedacht, aber mit RegExp stehe ich grundsätzlich auf dem Kriegsfuß.
Geht es einfacher wenn ich das Trennzeichen ändere, es sollte nämlich mittlerweile ein Komma sein, kein Semikolon. ;)
Also nochmal versucht zu erklären:
Der Ausdruck soll prüfen ob eine NUR Zahlenreihe, wenn denn vorhanden, aus genau 9 Zahlen oder mehreren Zahlenblöcken mit je 9 Zahlen besteht und wenn es mehrere sind, ob sie dann durch genau ein Komma getrennt sind.
Vielleicht geht das per RegExp gar nicht?
Müsste ich versuchen es in ein Array zu zerlegen und die einzelnen Values prüfen?
|
21.08.2017, 08:34:03
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: regExp für Zahlenblöcke mit Trennzeichen
sollte klappen:
Code:
<?php
$subjects = [
'',
'123',
'123456789',
'123456789,',
'123456789,123',
'123456789,123456789',
'123456789,123456789,',
];
foreach($subjects as $subject){
var_dump(preg_match('`^([0-9]{9},)+$`', $subject, $matches));
var_dump($matches);
}
|
29.08.2017, 14:27:21
|
Anfänger
|
|
Registriert seit: Oct 2007
Beiträge: 49
|
|
AW: regExp für Zahlenblöcke mit Trennzeichen
Hallo chorn,
Danke für deine Antwort, wow, das ist ja mal nen Ausdruck, den muss man erstmal verstehen.
Allerdings macht die Geschichte jetzt noch nicht ganz das gewünschte Ergebnis, da IMMER am Ende auch einer gültigen Aussage noch ein Komma stehen muss, damit preg_match() TRUE wird.
Also in deinem Demo passt es dann bei Wert 1 und 2 logischerweise nicht, aber auch Wert 3 passt nicht, in Zeile 4 mit dem Komma hinten dran dann doch.
Es muss also das Komma noch zwingend erfüllt sein, das ist aber so nicht richtig, das Komma am Ende darf auch nicht sein.
Allerdings habe ich gerade nicht den geringsten Plan wie der reg.Ausdruck da jetzt angepasst werden müsste. -_-
|
29.08.2017, 15:44:14
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: regExp für Zahlenblöcke mit Trennzeichen
guck dir das mal bei regex101.com an und spiel damit rum. Tipp: ?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:43:18 Uhr.
|