preg_replace all"(。+)"但等于" ="在ini文件行中

时间:2014-07-09 00:52:51

标签: php regex

我无法找到问题的确切答案,即:

如何通过以下方式创建替换preg_replace正则表达式:

  • $ key => url_rewriter.tags
  • $ val => "a=href,area=href,frame=src,input=src,form=,fieldset= "

Soucre:url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset = "

我写了这个,但出了点问题:

$v = 'url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset = "';
$key = preg_replace('/^(.+[^=])[\\s]*=[\\s]*(.*)$/', '$1', $v);
$val = preg_replace('/^(.+[^=])[\\s]*=[\\s]*(.*)$/', '$2', $v);

它返回:

  • $ key => url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset
  • $ val => "

我错过了什么?

1 个答案:

答案 0 :(得分:1)

$v = 'url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset = "';

$key = preg_replace('/^([^\s=]*)\s*=\s*(.*)$/', '$1', $v);
$val = preg_replace('/^([^\s=]*)\s*=\s*(.*)$/', '$2', $v);

http://ideone.com/ibtW9h

或者更好:

if (preg_match('/^([^\s=]*)\s*=\s*(.*)$/', $v, $match))
    list(, $key, $val) = $match;
else
    die('Error. Invalid source.');