2012-09-18 2 views
1

나는 this similar question에서 발견 된 따라와 정규식 사용하고 있지 : /[^\s"]+|"[^"]*"/g정규식은 refiddle에서 작동하지만 C#으로

가 나는 경우를 제외하고 공백으로 문자열을 분할 할을 문자열은 큰 따옴표로 묶습니다. 따옴표는 결과에 포함되어야합니다.

이 내 C# 코드입니다 :

MatchCollection conditions = Regex.Matches(strCondition, @"/[^\s""]+|""[^""]*""/g"); 

conditions.Count가에 allways 제로! http://refiddle.com/에서 정규식을 테스트 할 때 작동합니다!

예 입력 : 내가 잘못

"0" MATCHES NOCASE "Den Bosch" OR "0" MATCHES NOCASE "'s Hertogenbosch" 

"0" MATCHES "1" AND "1" MATCHES "2" AND "2" MATCHES "3" AND "3" MATCHES "4" AND "4" MATCHES "5" 

을 뭐하는 거지? 나는 몇 시간을 낭비했고 더 이상 단서가 없다.

이 경우 : (?<=")\w[\w\s]*(?=")|\w+|"[\w\s]*"이 내 경우에는 결과를 표시하지만 작은 따옴표로 인해 실패하기 때문에 원하는 결과를 얻지 못합니다. .NET에서

답변

4

정규 표현식은 그래서, / 구분 기호를 사용하지 마십시오

MatchCollection conditions = Regex.Matches(strCondition, @"[^\s""]+|""[^""]*"""); 
+0

우수함! 나는 그것이 작은 것이어야한다는 것을 알았다. 마감일 전에 완료 할 수 있다고 생각합니다. – Roel