2013-06-20 73 views
1

$匹配,则返回一个空数组...preg_match_all返回空数组

这不起作用

$missedvalue = $_GET['missedvalue']; 
$pattern = "/(?:\"(?:\\\\\"|[^\"])+\")/is"; 
preg_match_all($pattern, $missedvalue, $matches); 

但这个工程

$missedvalue = 'test "gift card"'; 
$pattern = "/(?:\"(?:\\\\\"|[^\"])+\")/is"; 
preg_match_all($pattern, $missedvalue, $matches); 

请告诉我交易?我不能放弃我的手指...我试图铸$missedvalue(string),但没有奏效。我很茫然。哦和$_GET['missedvalue']绝对等于test "gift card"

回答

1

为什么不能在模式中使用单引号是这样的:

+0

因为我偶然发现正则表达式,总是不得不使用我能找到的东西..但是使用你的正则表达式仍然没有帮助。 – Banning

+1

你能告诉我输出'var_dump($ _ GET ['missedvalue']);' – anubhava

+0

'string'test "礼品卡"'(长度= 26)' – Banning

1

我已经尽我机器上的代码,它为我工作。在运行regexp之前,也许你正在做一些事情来处理$ pattern或一些预处理过程。

+0

我只是试过这个'str_replace(''','=',$ _REQUEST ['missedvalue'])',它并不删除双引号.. hmmmm – Banning