代码之家  ›  专栏  ›  技术社区  ›  prime

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

  •  1
  • prime  · 技术社区  · 8 年前

    我需要将函数的参数与特定名称匹配。(在本例中,假设函数名为 function )

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

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

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

    但如果 函数(my_argument) 是文件的第一行。 check example in regex101.com .

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

    1 回复  |  直到 8 年前
        1
  •  1
  •   Wiktor Stribiżew    8 年前

    看来你想要

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

    regex demo

    细节 :

    • (^|;?[ ]+|\r?\n) -第1组捕获
      • ^ -字符串开始
      • | -或
      • ;?[ ]+ -可选的 ; 后跟1+空格
      • | -或
      • \r?\n -换行符(可选CR后跟LF)
    • function -文字字符序列
    • [(] -文字 (
    • ([^()]*) -第2组捕获0个以上字符,而不是 ( )
    • [)] -文字 ) .