ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
283
283
EMPFEHLEN
-
03.09.07 16:30 #1
- Registriert seit
- May 2007
- Beiträge
- 4
Hallo,
ich bräuchte mal Hilfe bei einem speziellen regulären Ausdruck.
Bei mir "matched" er nur teilweise richtig.
Ich habe den Ausdruck der Einfachheit halber aufgeteilt.
Code :1 2 3 4 5
'/[äöüÄÖÜ]/' /* sucht nach Umlauten --> Fehler */ '/\s/' /* sucht nach Steuerzeichen --> Fehler */ '/[_]/' /* sucht nach Unterstrichen --> Fehler */ /^([A-Z]{1}[a-z]+((([-][A-Z]{1}[a-z]+)*)|(([-][0-9]{4})*))$)/ /* --> OK */
Der ZielString soll eine Kette aus Zeichen sein, welche- mit einem Wort anfangenWörter sollen dabei:
- mit einem Bindestrich (Minus) gekoppelt werden- Groß anfangenBeispiele:
- Mindestens aus 2 Buchstaben bestehen
- Wörter können durch 4stellige Zahlen ersetzt werden falls es nicht das erste Wort ist.
"Test-Eins",
"Seite-Zwei",
"Seite-2004",
"Ergebnis-Januar-2004",
"Ergebnis-2006-Gesamt",
"Einfach"
bei mir klappt das mit den Zahlen nicht. Ich kann nur Wörter an einander koppeln ohne Fehlermeldung.
Falls mir jemand helfen kann...
ich bin für Vorschläge offen.
mfg Commanderalpha
-
Probier mal folgenden regulären Ausdruck:
Code :1
^[A-Z][a-z]+(?:-[A-Z][a-z]+|-[0-9]{4})*$Markus Wulftange
-
04.09.07 11:00 #3
- Registriert seit
- May 2007
- Beiträge
- 4
So gehts leider nicht.

Sowas "A-Bbbb" oder "1111-Test" sollte nicht möglich sein.
ist es bei der vorgeschlagenen aber leider.
Als Testumgebung hab ich folgendes kurzes PHP-Script geschrieben.
Wer sonst noch vorschläge hat, bitte melden.PHP-Code:<?php
error_reporting(E_ALL);
/* Hier der reguläre Ausdruck */
$regex = '/[A-Z][a-z]+(?:-[A-Z][a-z]+|-[0-9]{4})*$/';
/* Ende regulärer Ausdruck */
if(isset($_POST['eingabe'])) {
echo "Eingabe:<br />\n";
echo "<pre>\n";
echo $_POST['eingabe'];
echo "</pre>\n";
if(preg_match($regex, $_POST['eingabe'])) {
echo "<span style=\"color: #008000\">ID OK</span><br />\n";
} else {
echo "<span style=\"color: #FF0000\">ID nicht OK</span><br />\n";
}
}
echo "Regex:<br />\n";
echo "<pre>\n";
echo $regex;
echo "</pre>\n";
echo "<form action=\"Untitled-1.php\" method=\"POST\">\n";
echo " <input type=\"text\" value=\"".$_POST['eingabe']."\" name=\"eingabe\" />\n";
echo " <input type=\"submit\" name=\"testen\" />\n";
echo "</form>\n";
?>
-
04.09.07 11:20 #4
- Registriert seit
- May 2007
- Beiträge
- 4
HEUREKA!

ich habs! und die Lösung war so einfach...
Code :1
/^([A-Z]{1}[a-z]+(([-][A-Z]{1}[a-z]+)|([-][0-9]{4}))*$)/
der Unterschied is aber gering logisch
Danke
Commanderalpha
-
Du hast ganz einfach vergessen das Zeichen für den Zeichenkettenanfang (^) aus meinem Vorschlag zu kopieren.
Markus Wulftange
-
04.09.07 12:42 #6
- Registriert seit
- May 2007
- Beiträge
- 4
ohh.. stimmt!!
Asche über mein Haupt!!
Ähnliche Themen
-
Hilfe bei regulärem Ausdruck
Von exiter28 im Forum PHPAntworten: 1Letzter Beitrag: 28.09.10, 09:15 -
Hilfe zu regulärem Ausdruck
Von d_b im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 09.05.09, 10:34 -
Brauch Hilfe bei Regulärem Ausdruck
Von Soapp im Forum PHPAntworten: 2Letzter Beitrag: 29.08.06, 14:10 -
Hilfe bei Regulärem Ausdruck
Von schoko im Forum PHPAntworten: 2Letzter Beitrag: 02.08.06, 14:50 -
Brauche Hilfe bei regulärem Ausdruck
Von EvilO im Forum PHPAntworten: 2Letzter Beitrag: 12.11.05, 16:19





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren