【发布时间】:2021-02-18 19:01:02
【问题描述】:
如果我的字符串是
<?php $str = 'hello world!'; function func_hello($str) { echo $str; }
我想在字符串中查找任何函数的名称
我正在使用代码
preg_match_all('%func_.* ?\(%', $c, $matches);
这是我正在做的一个基本示例。在现实世界中,我得到这样的结果
func_check_error($ajax_action_check, array(
func_post('folder') == '/' || func_post(
func_check_error($fvar_ajax_action_check, array(
而我希望结果是
func_check_error(
func_post(
func_check_error(
我尝试\b 设置边界,但它不起作用。即
preg_match_all('%\bfunc_.* ?\(\b%', $c, $matches);
【问题讨论】:
-
您看到图案中的空格了吗?应该改为
func_.*?\(此外,使用正则表达式解析/分析代码可能会导致意外结果。 -
空格是因为函数名和括号之间可以有空格,所以问号是可选的
-
像
func_.*? ?\(这样的东西会阻止.*占用太多空间。 -
实际输入的字符串是什么?
$c的值是多少?