Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Wyszukanie ciągu znaków, Wyrażenia regularne
maniana
post 14.10.2010, 10:39:38
Post #1





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

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


Witam

Tworząc mały system template natrafiłem na problem związany z wyrażeniami regularnymi. Przetwarzam sobie taki plik:
  1. <p>To jest template</p>
  2. {%if(a='12' OR (b='abc' AND c='cba'))%}Wykonanie warunku{%/if%}
  3. <p>To jest koniec template</p>
Instrukcje mam zamknięte w {% i %} i wszystko działa ładnie, konwertuje sobie toto do wykonywalnych plików php. Problemy zaczęły się podczas przetwarzanie warunków IF.
Otóż wyrażeniem:
  1. preg_match('/^{%if(.*)%}/', $v, $matches)
ładnie wyłapuje to co jest w nawiasach ale teraz muszę to przetworzyć więc ciąg znaków:
  1. (a='12' OR (b='abc' AND c='cba'))
muszę zamienić na (przykładowo)
  1. ($a=='12' OR ($b=='abc' AND $c+='cba'))
Mój problem polega na skonstruowaniu wyrażenia wyłapującego ciągi znaków alfanumerycznych ale tylko takich które nie są zamknięte w apostrofach (w systemie abc ma oznaczać zmienną a 'abc' ciąg znaków, 123 to wartość liczbowa), oczywiście ciągi OR i AND będą pomijane w zamianie...

Jakieś sugestie jak ugryźć takie wyrażenie?

Edit: Przepraszam wkradł się błąd, przekształcone wyrażenie powinno wyglądać następująco:
  1. ($a=='12' OR ($b=='abc' AND $c=='cba'))
(= zamienione jest na ==, tez tego powyższego +)

Pozdrawiam

Ten post edytował maniana 14.10.2010, 14:11:05
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:30