$ _GET Sorgu dizeleri Düzenli İfade

2 Cevap php

I $_GET sorgu dizeleri için normal bir ifade bulmaya çalışıyorum.

Ben böyle bir dizi var:

private $_regexp = array(
    ':id'    => '[0-9]+',
    ':year'  => '[12][0-9]{3}',
    ':month' => '0[1-9]|1[012]',
    ':day'   => '0[1-9]|[12][0-9]|3[01]',
    ':slug'  => '[a-zA-Z0-9-]+',
    ':query' => '...'
);

ve ben döngü böyle bir eşleştirme joker varsa görmek için atıyorlar:

if ( array_key_exists($matches[0], $this->_regexp) )
    {
        return '^('.$this->_regexp[$matches[0]].')$';
    }

Diğer tüm sıradanifade gidip atış ama bulmak için farklı regexp bir sürü denedim:

?anything=anything

bunu bilemiyorum, h .. l gibi googled ama bir şey bulamıyorum. Ben bu gibi örnek bir şey için, denedim:

(\?)(.*)(=)(.*)

ama sonuçsuz ...

Burada herhangi sıradanifade guruları?

/ Tobias

2 Cevap

Gerçekten soruyu anlamıyorum rağmen, sizin regex olurdu

\?([^=]+)=([^&]*)
\?         # a literal question mark
(          # group 1
  [^=]+    # anything but a "=", 1-unlimited chars
)          # end group 1
=          # the "="
(          # group 2
  [^&]*    # anything but a "&", 0-unlimited chars
)          # end group 2

Eğer actually yapmaya çalıştığınız ne açıklayabilir misiniz?

Nasıl hakkında: -

(\?)([^=]+)(=)(.+)