php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 07-12-2010, 00:18
nasil122002
 Registrierter Benutzer
Links : Onlinestatus : nasil122002 ist offline
Registriert seit: Dec 2010
Beiträge: 3
nasil122002 befindet sich auf einem aufstrebenden Ast
Standard Regular expressions (preg_match)

Hallo,

Könnte mir jemand bitte bei der folgenden Aufgabe weiterhelfen?

Man sollte folgende Bedingungen für regulären Audrücken erfüllen:

1– deutsche und österreichische Postleitzahlen, z.B. D-89000 oder A-5020
2– englische Uhrzeit, z.B. 6:12 am oder 10:59 pm
3– eine Versionsnummer, z.B. 2.6.21-rc7 oder 2.4.34
4– eine 13-stellige ISBN-Nummer, z.B. 978-3-86680-192-9 oder 978-3-16-148410-0
5– Anfangs-Tag irgendeiner HTML-Überschrift, z.B. <h3> oder <H1>
6– eine österreichische Telefonnummer, z.B. +43/662/8044-6310
7– eine VISA-Kreditkartennummer (starten mit einer 4, neue Karten haben 16, alte Karten 13 Zahlen), z.B. 4123123123123
8– eine MasterCard-Kreditkartennummer (starten mit Zahlen 51 bis 55 und haben 16 Zahlen), z.B. 5112312312312312.
9– eine beliebige VISA oder MasterCard-Kreditkartennummer (Format siehe vorher)
10– eine .at email-Adresse, z.B. abcdf@abcdf.abcdf.ac.at
11– eine IPv4-Adresse, z.B. 141.201.0.1
12– ein Wort, in dem der Buchstabe e nicht vorkommt, z.B. Plan, Ausdruck

Einige davon habe ich selbst bearbeitet und funktionieren schon richtig, aber mit Nummern 5,6,9,10 und 12 habe ich Probleme.

Danke im voraus.

PHP-Code:
<?php 

/*
^ Anfang eines Strings
$ Ende eines Strings
. ein beliebiges Zeichen
n?  optional vorhandenes 'n'
n*  Kein oder mehrfaches Vorkommen von 'n'
n+  Ein oder mehrere Vorkommen von 'n'
n{2}  Genau zweifaches Vorkommen von 'n'
n{2,} Mindestens 2 oder mehrere Vorkommen von 'n'
n{2,4}  Mindestens 2, höchstens 4 Vorkommen von 'n'
()  Klammern für Ausdrücke
(n|a) Entweder 'n' oder 'a'
[1-6] eine Zahl zwischen 1 und 6
[c-h] ein Kleinbuchstabe zwischen c und h (c,d,e,f,g,h)
[D-H] ein Großbuchstabe zwischen D und H (D,E,F,G,H)
[^a-z]  kein Vorkommen von Kleinbuchstaben zwischen a und z
[_a-zA-Z] ein Unterstrich und ein beliebiger Buchstabe des Alphabets
[:space:] Leerzeichen
\ Escape-Zeichen, u.a. für ? ' " -
*/

//Gibt an (alle Fehler und Warnungen), welche PHP-Fehlermeldungen angezeigt werden.
error_reporting(E_ALL); 

    
//Prüfung der Daten
if(isset($_POST['submit']) AND $_POST['submit']=='OK'){ 

//Prüfe, ob der plz nur gültige Zeichen enthält.
if(!preg_match('/^A|D-[0-9]{4,5}$/'trim($_POST['plz']))) 
echo 
"PLZ ist falsch eingegeben!<br>";

//Prüfe, ob die englische Uhrzeit nur gültige Zeichen enthält.
if(!preg_match('/^(0[1-9]|1[0-2]):([0-5][0-9])(am|pm)$/'trim($_POST['uhrzeit']))) 
echo 
"Uhrzeit ist falsch eingegeben!<br>";

//Prüfe, ob die Version nur gültige Zeichen enthält.
if(!preg_match('^([0-9]{1})([0-9]{1})([0-9]{2})?-([a-z]{2})([0-9]{1})$^'trim($_POST['version']))) 
echo 
"Version ist falsch eingegeben!<br>";

//Prüfe, ob die ISBN nur gültige Zeichen enthält.
if(!preg_match('^([0-9]{3})-([0-9]{1})-([0-9]{2,5})-([0-9]{3,6})-([0-9]{1})$^'trim($_POST['isbn']))) 
echo 
"ISBN ist falsch eingegeben!<br>";

//Prüfe, ob die HTML-Tag nur gültige Zeichen enthält.
if(!preg_match('/^<(h|H).{1,6}>$/'trim($_POST['html']))) 
echo 
"HTML-Tag ist falsch eingegeben!<br>";

//Prüfe, ob die Telefonnummer nur gültige Zeichen enthält.
if(!preg_match('/^[0-9\/+-]+$/'trim($_POST['tel']))) 
echo 
"Telefonnummer ist falsch eingegeben!<br>";

//Prüfe, ob die VISA-Card nur gültige Zeichen enthält.
if(!preg_match('/^([4]{1})([0-9]{13,16})$/'trim($_POST['visa']))) 
echo 
"VISACard-Nummer ist falsch eingegeben!<br>";

//Prüfe, ob die Master-Card nur gültige Zeichen enthält.
if(!preg_match('/^5[1-5].{14}$/'trim($_POST['master']))) 
echo 
"Master-Card Nummer ist falsch eingegeben!<br>";

// Prüfe, ob die Email-Adresse gültig ist 
if(!preg_match('^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}$^'trim($_POST['email']))) 
$errors[]= "E-mail Adresse ist falsch eingegeben!<br>"

//Prüfe, ob die beliebige Master- Visa Card nur gültige Zeichen enthält.
if(!preg_match('/^[4]|[51]|[52]|[53]|[54]|[55].{13,16}$/'trim($_POST['visa-master']))) 
echo 
"Visa-Master Nummer ist falsch eingegeben!<br>";

//Prüfe, ob die IPV4-Nummer nur gültige Zeichen enthält.
if(!preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/'trim($_POST['ipv4']))) 
echo 
"IPV4-Nummer ist falsch eingegeben!<br>";

//Prüfe, ob das Buchstabe "e" vorkommt.
if(!preg_match('/[^e]$/'trim($_POST['e']))) 
echo 
"e!<br>";    
    }   
else { 

echo 
"Kein Fehler";

echo 
"<br/>";
echo 
"<table width=\"554\" border=\"0\" align=\"center\" bgcolor=\"#99CCFF\">\n"
echo 
"<tr>\n"
echo 
" <td>\n"
echo 
"  <h3>Regular Expressions</h3>\n"
echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" name=\"re\" accept-charset=\"ISO-8859-1\">\n"
echo 
"Deutsche und Österreichische PLZ: <br/>\n"
echo 
"<input name=\"plz\" type=\"text\" size=\"15\" maxlength=\"7\" value=\"D-12345\"> <br/><br/>\n"

echo 
"englische Uhrzeit: <br/>\n"
echo 
"<input name=\"uhrzeit\" type=\"text\" size=\"15\" maxlength=\"8\" value=\"10:22pm\"> <br/><br/>\n"

echo 
"Version: <br/>\n"
echo 
"<input name=\"version\" type=\"text\" size=\"15\" maxlength=\"30\" value=\"2.6.21-rc7\"> <br/><br/>\n"

echo 
"ISBN Nummer: <br/>\n"
echo 
"<input name=\"isbn\" type=\"text\" size=\"17\" maxlength=\"17\" value=\"978-3-86680-192-9\"> <br/><br/>\n"

echo 
"HTML Überschrift: <br/>\n"
echo 
"<input name=\"html\" type=\"text\" size=\"15\" maxlength=\"6\" value=\"<H3>\"> <br/><br/>\n"
 
echo 
"österreichische Telefonnummer: <br/>\n"
echo 
"<input name=\"tel\" type=\"text\" size=\"17\" maxlength=\"17\" value=\"+43/662/8044-6310\"> <br/><br/>\n"

echo 
"VISA-Kreditkartennummer: <br/>\n"
echo 
"<input name=\"visa\" type=\"text\" size=\"16\" maxlength=\"16\"  value=\"41231231231235\"> <br/><br/>\n"

echo 
"Master-Kreditkartennummer: <br/>\n"
echo 
"<input name=\"master\" type=\"text\" size=\"16\" maxlength=\"16\" value=\"5112312312312312\"> <br/><br/>\n"

echo 
".at E-Mail Adresse: <br/>\n"
echo 
"<input name=\"email\" type=\"text\" size=\"30\" maxlength=\"30\" value=\"abcdf@abcdf.abcdf.ac.at\"> <br/><br/>\n"

echo 
"Visa-Master-Kreditkartennummer: <br/>\n"
echo 
"<input name=\"visa-master\" type=\"text\" size=\"16\" maxlength=\"16\" value=\"5112312312312312\"> <br/><br/>\n"

echo 
"IPv4-Adresse: <br/>\n"
echo 
"<input name=\"ipv4\" type=\"text\" size=\"15\" maxlength=\"15\" value=\"141.201.0.1\"> <br/><br/>\n"

echo 
"\"e\" kommt nicht vor: <br/>\n"
echo 
"<input name=\"e\" type=\"text\" size=\"15\" maxlength=\"30\" value=\"Plan\"> <br/><br/>\n"
echo 
"<input type=\"submit\" name=\"submit\" value=\"OK\" align=\"right\">\n"
echo 
"</form>\n"
echo 
"</td>\n"
echo 
"</tr>\n"
echo 
"</table>\n";
}
?>
Mit Zitat antworten
  #2 (permalink)  
Alt 07-12-2010, 09:01
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

das sieht mir eiskalt nach »macht mir bitte meine Hausaufgaben« aus.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #3 (permalink)  
Alt 07-12-2010, 12:32
nasil122002
 Registrierter Benutzer
Links : Onlinestatus : nasil122002 ist offline
Registriert seit: Dec 2010
Beiträge: 3
nasil122002 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Wyveres Beitrag anzeigen
das sieht mir eiskalt nach »macht mir bitte meine Hausaufgaben« aus.
Das ist aber echt blöd, wenn ich so gedacht hätte, hätte ich nur fragen hier gestellt und nach lösungen gesucht. Wenn du menen Beitrag richtig gelesen hast, steht dort nicht das Wort "lösen" sondern "weiterhelfen". Ausserdem ist es hier nicht PHP Forum? Kann man hier nicht fragen was man (im Rahmen der PHP) will? Deinen Beitrag könntest du dir sparen.


PS: ADMIN oder MOD löschen Sie bitte meine Mitgliedschaft hier.

Danke.
Mit Zitat antworten
  #4 (permalink)  
Alt 07-12-2010, 12:38
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von nasil122002 Beitrag anzeigen
5– Anfangs-Tag irgendeiner HTML-Überschrift, z.B. <h3> oder <H1>
6– eine österreichische Telefonnummer, z.B. +43/662/8044-6310
9– eine beliebige VISA oder MasterCard-Kreditkartennummer (Format siehe vorher)
10– eine .at email-Adresse, z.B. abcdf@abcdf.abcdf.ac.at
12– ein Wort, in dem der Buchstabe e nicht vorkommt, z.B. Plan, Ausdruck
Als Ansatz:
5: <h\d> mit Modifier i
6: \+\d{2}\/\d{3}\/\d{4}\-\d{4}
9: Ausdruck-von-7|Ausdruck-von-8, geht natürlich auch kürzer …
10: [gültige-Zeichen-eines-Localpart]+@[gültige-Zeichen-einer-Domain-ohne-TLD]{2,}\.at, sowas findet man aber auch im Web!
12: [A-D,F-Z][a-d,f-z]+
Mit Zitat antworten
  #5 (permalink)  
Alt 08-12-2010, 03:31
nasil122002
 Registrierter Benutzer
Links : Onlinestatus : nasil122002 ist offline
Registriert seit: Dec 2010
Beiträge: 3
nasil122002 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Als Ansatz:
5: <h\d> mit Modifier i
6: \+\d{2}\/\d{3}\/\d{4}\-\d{4}
9: Ausdruck-von-7|Ausdruck-von-8, geht natürlich auch kürzer …
10: [gültige-Zeichen-eines-Localpart]+@[gültige-Zeichen-einer-Domain-ohne-TLD]{2,}\.at, sowas findet man aber auch im Web!
12: [A-D,F-Z][a-d,f-z]+
5: if(!preg_match('<h\d>i', trim($_POST['html'])))
6: if(!preg_match('/^\+\d{2}\/\d{3}\/\d{4}\-\d{4}$/', trim($_POST['tel'])))
9: if(!preg_match('/^([4]{1})([0-9]{13,16})|5[1-5].{14}$/', trim($_POST['visa-master'])))
10: if(!preg_match('/^[A-z0-9_]+[@][A-z0-9_]+([.][A-z0-9]+){2,}\.at$/', trim($_POST['email'])))
12: if(!preg_match('/^(^[A-D,F-Z]|[a-d,f-z])+[a-d,f-z]+$/', trim($_POST['e_Wort'])))

Danke für die Hilfe.
Mit Zitat antworten
  #6 (permalink)  
Alt 08-12-2010, 15:42
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

bei 5. musst du noch die Begrenzer ergänzen. < und > sind zwar gültige RegEx-Begrenzer und du hättest sie auch richtig verwendet, aber dann findest du damit den Buchstaben h mit Nummer dahinter und nicht unbedingt nur HTML-Tags.

Lösung: "/<h\\d>/i"

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/100801-regular-expressions-preg_match.html
Erstellt von For Type Datum
Regular expressions (preg_match) - PHP Forum: phpforum.de This thread Refback 29-06-2017 17:46

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
regular expressions Lengen1971 PHP Developer Forum 8 10-07-2006 17:01
Regular Expressions (Verzweiflung) raprezent PHP Developer Forum 7 21-10-2005 14:22
Ausschliessen mit Regular Expressions g-sus23 PHP Developer Forum 4 11-08-2005 18:43
Regular expressions Probs! okoman PHP Developer Forum 2 21-10-2002 18:16
Regular-Expressions rlebek PHP Developer Forum 1 09-10-2002 20:39

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:08 Uhr.