Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrazenia Regularne, kolorowanie skladni za pomoca php
y3ti
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 19.08.2004
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Witam,

Wraz z moim znajomym piszemy skrypt odpowiedzialny za kolorowanie skladni w artykulach i forum w naszym serwisie. Jak dotad wszystko nam szlo jak po masle, ale natknelismy sie na pewien problem, z ktorym od pewnego juz czasu nie mozemy
dac sobie sami rady.

Problem polega na tym, ze jak kolorujemy slowa kluczowe (dla przykladu niech to bedzie int z C) to slowa te nam sie koloruja, ale niestety rowniez wtedy, jesli
slowo to jest lancuchem znakow. Mamy powiedzmy taki oto prosty kod napisany w C:

Kod
#include <stdio.h>

int main()
{
   printf("Hello int World \n");

   return 0;
}



i teraz powiedzmy, ze chcemy pokolorowac wszystkie int na niebiesko, wiec:

  1. <?php 
  2.  
  3.  $zrodlo = join('', file('zrodlo.c'));
  4.  $zrodlo = htmlspecialchars( $zrodlo );
  5.  
  6.  $zrodlo = preg_replace('/bintb/', '<span style=\"color: blue\">int</span>', $zrodlo );
  7.  
  8. ?>


I teraz pytanie. Jak powinno wygladac wyrazenie regularne, aby nie kolorowalo tekstu w cudzyslowach?

Probowalem tak:

  1. <?php
  2.  
  3.  $zrodlo = preg_replace('/([^\"]*?)bintb(.*[^\"])/', '1<span style=\"color:blue\">int</span>2', $zrodlo );
  4.  
  5. ?>


Niestety tez nie dziala. Juz nie mam pomyslu jak mozna sobie z tym poradzic.

Bede wdzieczny za wszelkie informacje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Parti
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

Ostrzeżenie: (0%)
-----


Cytat(cagrET @ 2004-08-20 15:55:14)
Btw. masz może jakieś materiały / linki do artykułów na ten temat ? (leksery, parsery).

Polecam książke: Aho, Sethi, Ullman "Kompilatory" (jakiś czas temu wydana po Polsku) tzw. Dragon Book.

Manuale do Flexa (automatyczny generator lekserów) oraz Bisona (automatyczny generator parserów).

Jeszcze mi sie przypomniało. Na pierwszym roku informatyki na przedmiocie programowanie można poznać podstawy pisania kompilatorów. Tutaj skrypt do tego przedmiotu.

Ten post edytował Parti 20.08.2004, 15:10:58
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 17:25