2014-03-25 25 views
1

我有小问题,preg_match_all和\ npreg_match_all不支持 n

MY reqular表达:

/\s*DEF\s+FUNC\s+(\w+\d*)\((\w*[,\s\w]*|)\)\s*{\s*(.*)\s*};/ 

它适用于文本:

DEF FUNC test() 
{ 
    test1 
}; 

但是这并不工作正文:

DEF FUNC test() 
{ 
    test1 
    test1 
}; 

我与这3小时战斗;/ 有人可以帮助我吗?

感谢

回答

1

通配符.默认不匹配换行符。

如果你想它,你必须添加标志s(PCRE_DOTALL):

preg_match_all($regex, $in, $out, PCRE_DOTALL) 
+1

看起来你错过了一个参数,'$ flags'是第四个参数。 http://www.php.net/manual/en/function.preg-match-all.php – faintsignal

+0

@faintsignal:woopsie,谢谢 – Robin