2011-07-05 4 views
3

다음 SQL 샘플 문을 문자열 변수에RegEx를 사용하여 모든 매개 변수 추출

INSERT INTO T_Application 
(
    ApplicationGroupId, 
    Name, 
    Component, 
    SubComponent, 
    Description 
) 
VALUES 
(
    @ApplicationGroupId, 
    @Name, 
    @Component, 
    @SubComponent, 
    @Description 
) 

SET @Id = SCOPE_IDENTITY() 

내가 원하는 모든 매개 변수 이름 (Id, ApplicationGroupId, 이름, 구성 요소, SubComponent, 설명) List<string>있는 것입니다. RegEx를 작성하여 모든 매개 변수 이름을 추출하려면 어떻게합니까? RegEx는 매개 변수가 한 줄에 있고 , 사이의 공백이 있으면 작동해야합니다.

답변

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

결과 목록 사이에 공백이 작동합니다 다음 플래그를 사용하여 경기를 얻을

+0

감사합니다. RegEx는 언제나 저에게 마법입니다. – gsharp

+0

이것도'@ Id' (올바른 것)를 반환 할 것입니다. +1 –

0

: 매개 변수가 한 줄에있는 경우 정규 표현식은 ,

+0

이것은 일치 항목에'@ Id '를 포함하지 않습니다. –

0

다음 정규식을 사용할 수 있습니다 :

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

당신은 'parameter_names'라는 이름의 그룹에있는 모든 매개 변수를 얻을 것이다.

+0

이것은 일치 항목에'@ Id '를 포함하지 않습니다. –

+0

@Justin, ur right ... 내 정규 표현식을 변경해야 할 것 같아. 코멘트 주셔서 감사합니다. – Shekhar

+0

다음 정규식 작업을 할 수 있다고 생각합니다. \ @ [\ w] +? – Shekhar

관련 문제