[英]Regular expression for matching functions
我正在使用以下正则表达式(来自http://www.simple-talk.com/dotnet/asp.net/regular-expression-based-token-replacement-in-asp.net/ )
(?<functionName>[^\\$]*?)\\((?:(?<params>.**?)(?:,|(?=\\))))*?)
它工作正常,除非我在参数中包含括号,例如 "<b>hello<b> renderHTML(""GetData(12)"") "
所以我想要“GetData(12)”而不是“GetData(12)”。
有没有办法忽略任何用双引号括起来的匹配项?
有多种方法可以忽略引号内的括号,但这不会解决您的问题。 C# 中的函数调用不能与正则表达式匹配。 正则表达式不能匹配嵌套结构,例如它们同时出现在函数调用中的括号和<
。 要匹配这些,您需要使用各种语法。
我之前写了一篇博客文章,其中详细介绍了这个问题
我并不是要在这里回避答案。 但是这个问题的任何答案都会被稍微复杂(或者有时甚至更简单)的函数调用打破。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.