SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.07.2017, 15:50:37
Doc_McSky Doc_McSky ist offline
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
Mit Zitat antworten
  #2  
Alt 26.07.2017, 11:36:21
chorn chorn ist offline
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?
Mit Zitat antworten
  #3  
Alt 26.07.2017, 17:49:38
Doc_McSky Doc_McSky ist offline
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.
Mit Zitat antworten
  #4  
Alt 16.08.2017, 14:08:55
Doc_McSky Doc_McSky ist offline
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?
Mit Zitat antworten
  #5  
Alt 21.08.2017, 09:34:03
chorn chorn ist offline
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);
}
Mit Zitat antworten
  #6  
Alt 29.08.2017, 15:27:21
Doc_McSky Doc_McSky ist offline
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. -_-
Mit Zitat antworten
  #7  
Alt 29.08.2017, 16:44:14
chorn chorn ist offline
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: ?
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
regexp mrdiablo PHP für Fortgeschrittene und Experten 2 28.05.2007 07:45:58
RegExp werden nicht verarbeitet r0w PHP Grundlagen 1 06.02.2006 11:50:36
JS: Brauche eine RegExp - Funktion Marilu HTML, CSS und JavaScript Help! 6 05.02.2004 12:20:40
eigene datenbank gebastelt. wie drauf zugreifen ? trennzeichen vorhanden !! please he Snoopy_goes_php PHP für Fortgeschrittene und Experten 5 04.05.2003 14:07:11
RegExp bei URL - Problem bei Zeilenumbruch Schleicher PHP für Fortgeschrittene und Experten 3 09.08.2002 15:28:53


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:30:52 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt