我正在尝试为$_GET
查询字符串找到正则表达式。
我有一个这样的数组:
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' => '...'
);
我循环抛出它们,看看我是否有匹配的通配符:
if ( array_key_exists($matches[0], $this->_regexp) )
{
return '^('.$this->_regexp[$matches[0]].')$';
}
所有其他正则表达式都在抛出,但我尝试了很多不同的正则表达式来找到:
?anything=anything
无法弄清楚,用hogle搜索但却找不到任何东西。我试过,比如这样的事情:
(\?)(.*)(=)(.*)
但没有结果......
这里有任何regexp专家吗?
/ Tobias
答案 0 :(得分:1)
虽然我真的不明白这个问题,但你的正则表达式是
\?([^=]+)=([^&]*)
\? # 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
你能解释一下实际试图做什么吗?
答案 1 :(得分:0)
怎么样: -
(\?)([^=]+)(=)(.+)