Einzelnen Beitrag anzeigen

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, 07: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