Regex查找函数调用php


Regex to find function call php

我需要正则表达式来查找php中字符串中的函数调用,我曾尝试在这里搜索stackoverflow,但我尝试过的都不起作用。

此模式:^.*(['w]['(].*[')])

这将匹配:functionone(fgfg),但也将functionone(fgfg) dhgfghfgh functiontwo()作为一个匹配。不是两个单独的匹配(如functionone(fgfg)functiontwo()

我不知道怎么写,但我想这正是我需要的
1.任何字符串,后跟
2.后面跟的任何字符串)

然后它应该停止,而不是继续。有什么regex大师可以帮我吗?

我看到正则表达式有5个问题

  1. 如果您想在同一行中匹配两个函数,请不要使用锚^,这将把正则表达式锚定在字符串的开头。

  2. 然后一开始就不需要.*,可能更像'w+(我不确定PHP中函数名的规范是什么)

  3. 如果一个字符类中只有一个条目(并且不是否定的条目),则不需要字符类

  4. 括号之间的量词需要是一个惰性的(后面跟一个?)。因此,在这4点之后,您的正则表达式将看起来像

    'w+'(.*?')
    
  5. 正则表达式真的是这项工作的合适工具吗

不要为此使用regexp。。。使用PHP的内置标记化程序

函数签名不是一种常规语言。因此,不能使用正则表达式来匹配函数签名。您当前的正则表达式将匹配无效的函数签名。

我建议您使用PHP标记器。