2013-06-27 4 views
0

텍스트 문서에서 객관식 질문을 어떻게 추출 할 수 있습니까? 각 질문은 숫자와 점으로 시작합니다.정규 표현식을 사용하여 객관식 일치?

1. Any Text _____ Goes here, And end with ? Or . And also can contain another paragraph. 
a) possible 
b) use regex 
c) not possible 
d) I dont know 

Ans: b 

위의 질문은 질문의 모양입니다. 텍스트 파일에는 공백과 일부 에세이 작성 자료가 포함되어 있지만 복수 선택 질문 부분은 Ans:...까지만 포함됩니다. 모든 질문에는 대답 a, b, c 및 d가 있습니다.

정규 표현식을 사용할 수 있도록 Dreamweaver에서 텍스트를 복사했습니다.

답변

1

"1. 모든 텍스트 _ 여기로 가십시오. 끝내시겠습니까?"

는 정규식이로 번역 할 수 있습니다 :

\d+\.[^\?\.]*[\?\.] 

Regular expression image

당신을 위해 그 일을합니까? 이것은 질문이 끝나기 전까지는 물음표 나 마침표를 사용하지 않는다고 가정합니다 ... 그러나 그것은 여러분이 암시 한 것과 같습니다.

편집 : 당신이 대답뿐 아니라 질문 자체를 원하는 질문의 다른 유형을 구분하기 위해 찾고 있기 때문에, 이것을 시도 :

([ \t]*\d+\.[^\n]+\n(?:[ \t]*[a-zA-Z]\)[^\n]+\n)+[\s]*Ans:[^\n]*) 

Regular expression image

Edit live on Debuggex

+0

답장을 보내 주셔서 감사 드리며 중간 부분은 무엇입니까? b) ... c) ... d) ... 그리고 Ans : .. – User707

+0

어떻게 통계 다이어그램을 그릴 수 있습니까? 이? – User707

+0

이 문제는 두 질문 사이에 임의의 텍스트를 추가하면 임의의 텍스트도 선택됩니다. – User707

0

설명

이 표현식은 다음과 같습니다.

,
  • 캡처 그룹 0
  • 캡처 그룹 1에 해당 번호
  • 캡처 그룹 2에 대한 질문의 텍스트
  • 캡처 그룹 3
  • 가능한 답변의 블록에 대답을 통해 전체 질문
  • 모든 문장이 물음표를 포함하여 허용 그룹 4
  • 에 대한 답변 값을 캡처

^(\d+)\.\s*(.*?)[\r\n\s]+(^a\).*?)[\r\n\s]+Ans:\s+([a-z]+\b)

enter image description here

작업, 예를 들어 여기 참조 : http://www.rubular.com/r/RQoobTedtg

샘플 텍스트

12. Any Text _ Goes here, And end with ? Or . And also can contain another paragraph. 
a) Q1 possible 
b) Q1 use regex 
c) Q1 not possible 
d) Q1 i dont know 

Ans: a 

Do you like kittens or other random text? 

24. Second question is here 
a) Q2 possible 
b) Q2 use regex 
c) Q2 not possible 
d) Q2 i dont know 

Ans: b 

일치

Match 1 
1. 12 
2. Any Text _ Goes here, And end with ? Or . And also can contain another paragraph. 
3. a) Q1 possible 
    b) Q1 use regex 
    c) Q1 not possible 
    d) Q1 i dont know 
4. a 

Match 2 
1. 24 
2. Second question is here 
3. a) Q2 possible 
    b) Q2 use regex 
    c) Q2 not possible 
    d) Q2 i dont know 
4. b 

노트

이 정규식은 각 질문 끝에 Ans: x있을 것이라는 점을 가정 않습니다.

관련 문제