正则表达式:如何匹配函数调用及其上方的注释

Regexp : How can I match function calling and the comments above it

#hello world calling

hello_world();

============================
//hello world calling

hello_world('hello');
==========================
/*
    Hello World Calling
    multiline comment
*/

hello_world('hello','world');

如何匹配所有 3 个具有不同注释样式的部分以及被调用的函数。

除此之外,我还想捕获注释以及函数的参数。例子

array(
    array(
        [0] => 'hello world calling';
        [1] => 'hello world calling';
        [2] => 'hello world calling multiline comment';
    )
    array(
        [0] => '';
        [1] => 'hello';
        [2] => 'hello world';
    )
)

尝试了一些正则表达式但没有得到我想要的

我在 https://regex101.com/#pcre 上测试了你的文本,这些是我想出的最接近的文本。

对于评论:

/\#(.*)|\/\/(.*)|\/\*([\w\W]*)\*\//g

结果:

MATCH 1
1.  [1-20]  `hello world calling`
MATCH 2
2.  [69-88] `hello world calling`
MATCH 3
3.  [141-188]   `
    Hello World Calling
    multiline comment
`

参数:

/\((.*)\)/g

结果:

MATCH 1
1.  [34-34] ``
MATCH 2
1.  [102-109]   `'hello'`
MATCH 3
1.  [204-219]   `'hello','world'`

你可以试试 this:

(?:(?:#|\/\/)(.*?)|\/\*((?:.|\n)*?)\*\/)*\n*?\b(.*?)\((.*?)\);