未知的修饰符'g'PHP正则表达式错误

时间:2011-09-03 10:32:49

标签: php regex

我的模式是:/(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/g 和数据:http://gskinner.com/RegExr/?2ujor

和php代码:

$regexp = ' /(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/g';
if(preg_match("$regexp", $input, $matches, PREG_SET_ORDER)) { 
for($i=0;$i<14;$i++){
echo '--->'.$i.'-->'.$matches[0][$i];

}}
  

结果:警告:preg_match()[function.preg-match]:未知的修饰符   'G'

$regexp = ' /(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/g';
if(preg_match_all("$regexp", $input, $matches, PREG_SET_ORDER)) { 
for($i=0;$i<14;$i++){
echo '--->'.$i.'-->'.$matches[0][$i];

}}
  

结果:警告:preg_match_all()[function.preg-match-all]:未知   修饰符'g'

此解决方案无效! :| "Unknown modifier 'g' in..." when using preg_match in PHP?

我该怎么办?

2 个答案:

答案 0 :(得分:6)

切换到preg_match_all是正确的,现在您需要做的就是从正则表达式中删除'g':

$regexp = '/(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/';

答案 1 :(得分:2)

There's no g modifier

删除该g并且它将起作用

$regexp = '/(productimages\/)(\w*)(\/v\/)(\w*)(.jpg)/';