繁体   English   中英

匹配函数的正则表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM