如何使用正则表达式提取类似字符串的方法的参数?

时间:2011-01-19 22:34:23

标签: c# regex

3 个答案:

答案 0 :(得分:0)

尝试将多行更改为单行

答案 1 :(得分:0)

如果你的选择非常广泛,以下内容适合你:

(?:^|[\r\n])[\w\s]*(?<params>\(.*?\))

要抓住原型(并使用大括号作为分隔符):

(?:^|[\r\n])[\w\s]*(?<params>\(.*?\)).*?\{

如果您正在寻找更具体的内容,请与我们联系。

编辑添加了(?:^|[\r\n]),确保它位于文件或行的开头。

答案 2 :(得分:0)

我认为这个正则表达式单独解析每个参数,但我现在无法测试它,所以使用它需要您自担风险。您需要在Regex对象中添加一个全局标记,以便匹配多个参数,并且还需要一个单行正则表达式,因此您需要匹配源中的每一行。

String regex = "^[\s]*methodName[\s]*\\((?<param>[^,\\)]*)*\\).*?$";

读取此正则表达式:在行的开头(^)匹配任意数量的空格([\s]*),然后是字符串文字“methodName”(methodName),然后是再次使用空格数([\s]*),然后是一个左括号(\\(),然后启动一个名为“param”((?<param>)的捕获组,然后匹配任何数量的任何东西逗号或右括号([^,\\)]*),然后关闭“参数”捕获组并匹配该组任意次()*),最后匹配一个闭括号,任何字符(懒惰) ),以及该行的结尾(\\).*?$