Tworząc mały system template natrafiłem na problem związany z wyrażeniami regularnymi. Przetwarzam sobie taki plik:
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.
{%if(a='12' OR (b='abc' AND c='cba'))%}Wykonanie warunku{%/if%}
Otóż wyrażeniem:
ładnie wyłapuje to co jest w nawiasach ale teraz muszę to przetworzyć więc ciąg znaków:
muszę zamienić na (przykładowo)
(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...
($a=='12' OR ($b=='abc' AND $c+='cba'))
Jakieś sugestie jak ugryźć takie wyrażenie?
Edit: Przepraszam wkradł się błąd, przekształcone wyrażenie powinno wyglądać następująco:
(= zamienione jest na ==, tez tego powyższego +)
($a=='12' OR ($b=='abc' AND $c=='cba'))
Pozdrawiam