正则表达式:如何匹配函数调用及其上方的注释
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(.*?)\((.*?)\);
#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(.*?)\((.*?)\);