AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein RegEx != RegEx? PHP ereg liefert immer nur REG_BADRPT
Thema durchsuchen
Ansicht
Themen-Optionen

RegEx != RegEx? PHP ereg liefert immer nur REG_BADRPT

Ein Thema von static_cast · begonnen am 1. Mai 2006 · letzter Beitrag vom 5. Mai 2006
 
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: RegEx != RegEx? PHP ereg liefert immer nur REG_BADRPT

  Alt 5. Mai 2006, 06:29
Zitat von MathiasSimmack:
Damit geht es
Code:
"/^\[code\](.*?)(^\[[^code]|\Z)/msi"
puh, sicher?
Code:
(^\[[^code]|\Z)
heisst doch umschrieben:
(       beginne match
^       Zeilenanfang
\[      Zeichen: Eckige Klammer auf
[^code] keines der Zeichen c, o, d oder e (einzelnes Zeichen)
|       oder
\Z     end of subject oder Zeilenumbruch am Ende
)      beende match
das [^code] kann dir glaube zum Verhängnis werden


Was den Single-Line-Comment angeht...

[Edit #1: hier stand mal wieder Shredder, den ich vorsichtshalber entfernt hab]

Da kommt sich irgendwo irgend etwas in die Quere bei Geshi.
Ohne alles liefert:

Code:
<pre>
<?php
$source1 ='; Kommentar
#define ISPP "bla"';
$source2 ='#define ISPP "bla"
; Kommentar';

$GESHI_SEARCH = '^;.*$';
$GESHI_REPLACE = '\\0';
$GESHI_MODIFIERS = 'm';

$source1 = preg_replace("#$GESHI_SEARCH#$GESHI_MODIFIERS", "<span style='color:#f00;'>$GESHI_REPLACE</span>", $source1);
$source2 = preg_replace("#$GESHI_SEARCH#$GESHI_MODIFIERS", "<span style='color:#f00;'>$GESHI_REPLACE</span>", $source2);
echo $source1."\n\n".$source2;

?>
</pre>
Das hier:
Code:
[color=#ff0000]; Kommentar[/color]
#define ISPP "bla"

#define ISPP "bla"
[color=#ff0000]; Kommentar[/color]
[Edit #2: Ich hab noch mal dran gebastelt]

Code:
<pre>
<?php
$source1 ='; Kommentar
#define ISPP "bla"';
$source2 ='#define ISPP "bla"
; Kommentar';

$GESHI_SEARCH[] = '@^;.*$@m';
$GESHI_SEARCH[] = '@^#.*$@m';
$GESHI_REPLACE[] = "<span style='color:#090;'>\\0</span>";
$GESHI_REPLACE[] = "<span style='color:#f00;'>\\0</span>";

$source1 = preg_replace($GESHI_SEARCH, $GESHI_REPLACE, $source1);
$source2 = preg_replace($GESHI_SEARCH, $GESHI_REPLACE, $source2);
echo $source1."\n\n".$source2;

?>
</pre>
erzeugt folgendes:
Code:
[color=#009900]; Kommentar[/color]
[color=#ff0000]#define ISPP "bla"

#define ISPP "bla"[/color]
[color=#009900]; Kommentar[/color]
Wenn du also die Compiler-Statements, die am Anfang stehn IRGENDWIE overriden kannst dann leg eine ähnliche regex wie bei den singleline-omments an

Überzeugen darfst du dich hier: http://www.cruiser-dev.de/matsim.php
  Mit Zitat antworten Zitat
 


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz