2012-01-07 3 views
1

: 정규 표현식을 사용브레이크 문장은 나는 다음과 같은 문자열을 깰려고

1. This is first 2. This is 45. second 3. This is third 

는 :

1. This is first 
2. This is 
45. second 
3. This is third 

:

question = Regex.Split(strText, @" [0-9]+\. "); 

그것은처럼 온다 내가 원하는 곳 :

1. This is first 
2. This is 45. second 
3. This is third 

사실 저는 1에서 30까지의 숫자로 문자열을 나누고 싶습니다. 다른 숫자가 문장에서 오는 경우, 깨지지 않아야합니다. 위의 결과를 얻으려면 어떻게이 문자열을 처리해야합니까?

답변

1

this 시도 :

정규식 구분자로서 뒤에 도트 1 ~ 30 사이의 값을 일치시키기위한 올바른

Regex.Split(strText, @"\b([0-2]?[1-9]|30)\."); 

요금 문제는 Regex.Split() 동작이다. 나는 당신이 한 걸음에 Regex.Split()로 원하는 것을 얻을 수 없다고 생각합니다. 사용 Regex.ReplaceString.Split() :

question = Regex.Replace(strText, @"(\b([0-2]?[1-9]|30)\.)", System.Environment.NewLine + "$1").Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); 

데모 : http://rextester.com/IVM84413

+0

그것은 작동하지만처럼 제공 : 질문 [0] = 1, 질문 [1] =이 처음이다 등등 ... – fawad

+0

이 올바른 해결책이 아닙니다. – fawad

+0

@fawad가 답변을 업데이트했습니다! – fardjad