php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.04.2006, 11:45  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard REGEX - Alles zwischen '' außer \'

Hallo,

ich möchte MySQL-Befehle farbig darstellen. Es klappt auch alles schon super, nur wenn es um Strings geht scheitert mein Können/Wissen.

Ich habe z.B. folgende Zeile
PHP-Code:
$sql="SELECT ident FROM tabelle WHERE feld='Baumhaus' LIMIT 1;"
Dann möchte ich jetzt 'Baumhaus' rot darstellen.
PHP-Code:
$pattern="#(')(.*)(')#Us"
Wenn aber mein Beispiel folgt aussieht scheitert meine methode:
PHP-Code:
$sql="SELECT ident FROM tabelle WHERE feld='Elke\'s Welt' LIMIT 1;"
Also habe ich versucht meinen RegEx umzuschreiben:
PHP-Code:
$pattern="#([^\\])(')(.*)([^\\])(')#Us"
Leider bingt mir das nicht mehr den Erfolg. Wenn ich mit diesen Pattern arbeite dann bekomme ich über preg_match keinen Treffer mehr.
Ich hab dieses Pattern schon hundertmal umgestellt, aber leider ohne Erfolg. Ich gelaube es liegt bei mir an Mangel an Verständnis für RegEx.
Denn das Manual konnte mich keiner Lösung belehren. Und da ich durch testen und suchen keine Lösung gefunden habe
(liegt wahrscheinlich wieder mal an den Suchbegriffen die ich verwendet habe) bitte ich um Hilfe.

Danke,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.04.2006, 12:08  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
$string 
"SELECT ident FROM tabelle WHERE feld='Elke\'s Welt' LIMIT 1;";
var_dump(preg_match("#'(.*[^\\\])'#Us"$string$m));
echo 
'<pre>'print_r($mtrue), '</pre>';
?>
Zergling-new ist offline   Mit Zitat antworten
Alt 06.04.2006, 12:26  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Danke schön, Fehler erkannt. Nicht "\\" sondern "\\\".
Bei mir hätte es lauten müssen

PHP-Code:
$pattern="#([^\\\])(')(.*)([^\\\])(')#Us"
Aber ich werde deine Version nehmen, die finde ich besser gelöst.

Gruß,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 06.04.2006, 12:32  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hast du damit keinen RegEx Fehler ala Compilation failed: missing terminating ] for character class at offset 10 bekommen?
Zergling-new ist offline   Mit Zitat antworten
Alt 06.04.2006, 12:45  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
PHP-Code:
<?php
$string 
"SELECT ident FROM tabelle WHERE feld='Elke\'s Welt' LIMIT 1;";
var_dump(preg_match("#'(.*[^\\\])'#Us"$string$m));
echo 
'<pre>'print_r($mtrue), '</pre>';
?>
Diese Methode erkennt allerdings z.B. 'Elkes Welt\\' nicht als String.
PHP-Code:
<?php
  $pattern 
"#'((?:.*[^\\\])?(?:\\\{2})*)'#Us";
?>
  Mit Zitat antworten
Alt 06.04.2006, 12:55  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Danke,

daran habe ich gar nicht gedacht.

Gruß,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 06.04.2006, 12:58  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Zitat:
Zitat von Zergling
Hast du damit keinen RegEx Fehler ala Compilation failed: missing terminating ] for character class at offset 10
bekommen?
Habe ich leider nicht bekommen. Wahrscheinlich weil ich (dummerweise) am Endsystem gestetet habe und dort die Warnings deaktiviert sind.
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 06.04.2006, 12:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Fuchs
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
Regex: Auslesen der Meta-Tags einer Webseite Sucheingrenzung pepe24 PHP Tipps 2008 12 31.05.2008 15:41
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Regex Link Problem Broadcast PHP Tipps 2008 2 29.02.2008 16:30
[gelöst :D ] regex tuts nur einmal pro zeile notyyy PHP Tipps 2008 17 24.09.2007 15:40
RegEx für Mail-Adresse (Bitte prüfen!) vollkommenegal PHP Tipps 2006 13 20.11.2006 20:02
habe ein paar fragen zu REGEX imported_kremser PHP Tipps 2006 11 31.01.2006 15:30
[Erledigt] Problem mit einem Regex PHP-Fortgeschrittene 4 23.01.2006 09:34
RegEx findet Stringvorkommen nicht PHP Tipps 2007 6 08.12.2005 21:52
[Erledigt] Abstände zwischen Tabellen HTML, Usability und Barrierefreiheit 1 11.10.2005 14:55
regex PHP Tipps 2005-2 13 15.09.2005 19:54
Suche ein bestimmtes Regex Chr!s PHP Tipps 2005 5 21.05.2005 12:01
[Erledigt] Kommunikation zwischen Objekten - Wie geht es richtig? PHP Tipps 2005 9 11.04.2005 00:57
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
Regex über mehrere zeilen PHP-Fortgeschrittene 3 25.12.2004 16:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regex außer, regex alles ohne, regex alles außer string, regex alles außer, regex alles, regex alles ausser, regex alles zwischen, regular expression alles außer, regex alles außer zeichenkette, javascript regex alles außer, regex alles außer leerzeichen, regex ausser, javascript regex außer, regexp außer, regexp alles außer, regexp alles ausser, javascript regex alles ausser, php regex alles zwischen, regex außer string, regulärer ausdruck alles

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.