2012-11-05 2 views
0

문장 분할이 필요한 정규 표현식.
문장을 분할하는 Regex 방식이 필요합니다. 당신이 볼 수 있듯이정규식을 여러 그룹으로 분할

Question : OptionA, OptionB, OptionC ? AnswerType 

EXAMPLES: 
Color: Yellow, Green, Red ? ListBox 
Color ? ListBox 

는 두 번째 예는 어떤 옵션이 없습니다 ...

질문, 옵션, 다음 구분 기호로 나눈 AnswerType :
다음 문장 구조는 그 구성 부분으로 세분화 될 필요가 이것을 설명 할 필요가있다. 출력은 이상적으로 다음 그룹과 같습니다.

차이점이 있으면 VB.NET에서 작업하고 있습니다. ?

(?P<question>\w+)\s*(?::\s*(?P<options>\w+(?:,\s*\w+)*))?\s*\?\s*(?P<type>\w+)

P는 < 이름>이 결정

답변

1

내가 여기 어떻게 정규식 작품 vb.net에서을 알고 있지만하지 않는이 DEMO

정규식 설명 아니라 일반 후두둑과의 그 그룹을 역 참조하기위한 이름을 사용하면 루프가 생기고 모든 것이 그룹화됩니다.

(접미사)로 새 정규식을 사용해보십시오. DEMO 방금 ​​질문 뒤에 (sufix)를 추가 할 가능성을 추가했습니다.

워진 정규식 :

(?P<question>\w+)\s*(?P<suffix>\(\w+\))?\s*(?::\s*(?P<options>\w+(?:,\s*\w+)*))?\s*\?\s*(?P<type>\w+)

UPDATE 2 : -이 내가 VB.NEt 다른를 사용해야합니다 생각을 제외하고 멋지다>(?P<question>[\w '-]+)\s*(?P<suffix>\([\w '-]+\))?\s*(?::\s*(?P<options>[\w '-]+(?:,\s*[\w '-]+)*))?\s*\?\s*(?P<type>[\w '-]+)

DEMO

+0

감사 ' 공간 작업 및 맛 "Unrecognized grouping construct."라는 오류가 발생했습니다. 이름 : P 후 것 같습니다? 문제를 일으키고있다. – Lars

+0

성공! 나는 P를 떨어 뜨 렸어? VB.NET에서 완벽하게 작동합니다. 데모 웹 사이트가 환상적입니다! 감사! – Lars

+0

Javier : 질문 그룹 다음에()로 묶인 "접미어"라는 추가 그룹을 추가하고 싶습니다. 예 : 크기 (mm) : 노란색, 녹색, 빨간색? ListBox 크기 : 작음, 중간 크기, 큰? 연령 목록 (yrs)? ListBox – Lars

관련 문제