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

匹配函数的正则表达式

  •  1
  • Podge  · 技术社区  · 16 年前

    我正在使用以下正则表达式(从 http://www.simple-talk.com/dotnet/asp.net/regular-expression-based-token-replacement-in-asp.net/ )

    ?<函数名>[^\$]*?)[(?)(?)<参数>**?)?,(?)(=)())*?

    它工作得很好,除非我在参数中包括括号 as“<b>您好<b>renderhtml(”“GetData(12)”)

    所以我想要“getdata(12)”,而不是“getdata(12)”。

    如果匹配项用双引号括起来,是否可以忽略它们?

    1 回复  |  直到 16 年前
        1
  •  1
  •   JaredPar    16 年前

    有一些方法可以忽略引号内的parens,但这并不能解决您的问题。C中的函数调用不能与正则表达式匹配。正则表达式不能匹配嵌套结构,例如它们的parens和 < 出现在函数调用内部。要匹配这些,您需要使用某种语法。

    我以前写过一篇关于这个问题的博文

    我不是想逃避答案。但这个问题的任何答案都将被一个稍微复杂(有时甚至更简单)的函数调用打破。