Sebastian Wramba
Erfahrenes Mitglied
Hallo zusammen,
für mein kleines Highlight-Script wollte ich den Inhalt zwischen ' und ' parsen lassen, sowie Klammern und eckige Klammern. Jedoch mit der Bedingung, dass diese nicht auskommentiert sein dürfen (durch // oder { ... } oder (* ... *) ) ...
Funktioniert mit bestimmten Wörtern auch schon, wenn ich das jedoch entsprechend anpasse, geht's lustigerweise nicht mehr, d.h. er parsed nirgendwo Klammern, eckige Klammern oder Strings.
Anm.: Das Pattern ist laut RegEx Coach richtig, der springt auch bei Kommentaren drauf an. Und wenn ich die if-Abfrage rausnehme, wird alles richtig geparsed, jedoch mit nicht mehr.
Ich hoffe, mir kann jemand hierbei helfen.
Danke im Voraus, Sebastian
für mein kleines Highlight-Script wollte ich den Inhalt zwischen ' und ' parsen lassen, sowie Klammern und eckige Klammern. Jedoch mit der Bedingung, dass diese nicht auskommentiert sein dürfen (durch // oder { ... } oder (* ... *) ) ...
Funktioniert mit bestimmten Wörtern auch schon, wenn ich das jedoch entsprechend anpasse, geht's lustigerweise nicht mehr, d.h. er parsed nirgendwo Klammern, eckige Klammern oder Strings.
Code:
// Zum Parsen von bestimmten Wörtern
<?php
if(!preg_match("~(//(.*)(".$fw."))|(\{(.*)(".$fw.")(.*)\})|(\(\*(.*)(".$fw.")(.*)\*\))~iU",$return_string)) { // Überprüfen, ob kein Kommentar
$return_string = preg_replace("/(^|;|:|\(|\)|\s)(".$fw.")(\$|;|:|\(|\)|\s)/isU","$1<b>$2</b>$3",$return_string);
}
?>
Code:
// Zum Parsen von '...' und (, ), [ und ]
<?php
if(!preg_match("~(//(.*)('|\(|\)))|(\{(.*)('|\(|\))(.*)\})|(\(\*(.*)('|\(|\))(.*)\*\))~iU",$return_string)) {
$return_string = preg_replace("/'(.*)'/isU","<span style=\"color:#FF0000\">'$1'</span>",$return_string); // Strings
$return_string = preg_replace("/(\(|\))/isU","<span style=\"color:#007700\">$1</span>",$return_string);
}
?>
Anm.: Das Pattern ist laut RegEx Coach richtig, der springt auch bei Kommentaren drauf an. Und wenn ich die if-Abfrage rausnehme, wird alles richtig geparsed, jedoch mit nicht mehr.
Ich hoffe, mir kann jemand hierbei helfen.
Danke im Voraus, Sebastian
Zuletzt bearbeitet: