正则表达式匹配函数的参数

时间:2017-01-31 11:36:37

标签: regex

我需要将函数的参数与特定名称匹配。 (在这种情况下,让我们说出函数名称function

所以基本上如果文件中出现类似function(my_argument)的情况,我想从中提取参数my_argument。 (基本上我需要的是收集传递给该文件中function()的所有参数)

到目前为止,我想出了一个正则表达式

(([;][ ]{0,})|([ ]{1,})|(\n))function[(](([^()]*)*)[)]

但是如果function(my_argument)是文件的第一行,它似乎无法捕获它。 check example in regex101.com

是否有任何方法可以捕获该实例。或者如果有更好的方法可以做到这一点,我也可以接受建议,并高度赞赏它。

1 个答案:

答案 0 :(得分:1)

好像你想要

(^|;?[ ]+|\r?\n)function[(]([^()]*)[)]

请参阅regex demo

<强>详情:

  • (^|;?[ ]+|\r?\n) - 第1组捕获
    • ^ - 字符串开头
    • | - 或
    • ;?[ ]+ - 可选;后跟1 +空格
    • | - 或
    • \r?\n - 换行符(可选的CR跟随LF)
  • function - 文字字符序列
  • [(] - 文字(
  • ([^()]*) - 第2组捕获除()以外的0 +字符
  • [)] - 文字)