Home >Backend Development >PHP Tutorial >正则表达式 - php 可以匹配"函数","类"么?求实现

正则表达式 - php 可以匹配"函数","类"么?求实现

WBOY
WBOYOriginal
2016-06-06 20:30:101095browse

<code><?php $str = <<<EOT
function a(){
echo 'fun a';
}

function b($b){
echo 'b';
}

function c($c){
if($c == 1){
echo 'c1';
}else{
echo 'c2';
}
}
EOT;
</code></code>

要到达的效果如下:
将字符串$str里面的三个函数分离出来存到数组里面去,有什么好的兼容性高的正则匹配方法么?(类同理)
谢谢大家

回复内容:

<code><?php $str = <<<EOT
function a(){
echo 'fun a';
}

function b($b){
echo 'b';
}

function c($c){
if($c == 1){
echo 'c1';
}else{
echo 'c2';
}
}
EOT;
</code></code>

要到达的效果如下:
将字符串$str里面的三个函数分离出来存到数组里面去,有什么好的兼容性高的正则匹配方法么?(类同理)
谢谢大家

请你先说明这样做的意义在哪里,你为什么要这样呢?
另外根据你的问题我提供一些资料,希望能帮到你

php的创建匿名函数 create_function
get_defined_vars返回由所有已定义变量所组成的数组

如果是正则表达式,需要用到正则表达式的平衡组的概念。
如果你的str中比较规整 没有function嵌套,function间没有别的语句的话,可以直接用字符串拆分的方法。

正则是一个"兼容性"(健壮性)非常差的东西, 如果不限麻烦的化可以使用PHP-Parser.
https://github.com/nikic/PHP-Parser
PHP-Parser 提取 AST, 然后通过AST反向生成代码. (这里需要你自己遍历AST)
https://github.com/nikic/PHP-Parser/blob/1.x/doc/4_Code_generation.mar...

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn