phpbar.de logo

Mailinglisten-Archive

[php] regex problem

[php] regex problem

Thomas Richter php at wwedit.org
Mon Jun 7 13:23:32 CEST 2004


Christian Schäfer wrote:

>  hallo liste,
>
>  das übliche, da braucht man schnell man einen ausdruck und der will
>  nicht ganz gelingen..
>
>  "^[^#][ \t]*([^= \t]+)[ \t]*=[ \t]*([^= \t\n]+)[ \t]*\n$"

^\s*(?<!#)\s*([^=\s]+)\s*=\s*(.+)$

\s match alle whitespaces ausser \n und \r
(?<!#) ist ein lookbehind pattern, welches besagt, dass kein # vor dem
pattern auftauchen darf. deine variante sagt ja nur, dass das es ein 
zeichen
AUSSER # sein muss, nicht, dass es davor nicht auftauchen darf.

>  ach: und falls noch jemand einen tipp hat, wie ich in den werte auch
>  spaces und tabulatoren zulassen kann, wenn sie in anführungszweichen
>  stehen, wäre ich ebenfalls dankbar, danke!

nach dem oberen ist das zeilenende das ende des wertes. dadurch  koennen
auch whitespaces im wert auftauchen. man koennte auch \s in ([^=\s]+) 
weglassen,
und macht dann auf die matches ein trim() um unnoetige spaces zu entfernen.

vielleicht noch debuggen. habs nicht getestet...

thomas


php::bar PHP Wiki   -   Listenarchive