使用RegEx提取所有参数

时间:2011-07-05 12:21:18

标签: c# .net regex

我在字符串变量

中有以下SQL示例语句
INSERT INTO T_Application
(
    ApplicationGroupId,
    Name,
    Component,
    SubComponent,
    Description
)
VALUES
(
    @ApplicationGroupId,
    @Name,
    @Component,
    @SubComponent,
    @Description
)

SET @Id = SCOPE_IDENTITY()

我想要的是List<string>中的所有参数名称(Id,ApplicationGroupId,Name,Component,SubComponent,Description)。 如何编写RegEx来提取所有参数名称?如果参数在一行中,,之间的空格等

,则RegEx也应该有效

3 个答案:

答案 0 :(得分:9)

Regex.Matches(sql, @"\@\w+").Cast<Match>().Select(m => m.Value).ToList ();

结果清单:

@ApplicationGroupId
@Name
@Component
@SubComponent
@Description   

答案 1 :(得分:0)

你可以试试这个正则表达式:

\({0,1}\s*(\w*)\,

然后,您可以使用标记

获取匹配项

答案 2 :(得分:0)

您可以使用以下正则表达式:

insert into[\s\S]+?\((?<parameter_names>([\s\S]+?))\)

您将获得名为“ parameter_names ”的组中的所有参数。