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 中复制了我的文本,以便可以使用正则表达式。

4

2 回答 2

1

“1. 任何文本 _ 到这里,并以 ? 或 . 结尾。”

可以用正则表达式翻译成这个:

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

正则表达式图片

那对你有用吗?这假设您在问题中直到最后都没有任何问号或句点……但这也是您所暗示的。

编辑:由于您想要答案而不仅仅是问题本身,并且您希望区分其他类型的问题,请尝试以下操作:

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

正则表达式图片

在 Debuggex 上实时编辑

于 2013-06-27T19:16:02.183 回答
0

描述

该表达式将:

  • 将整个问题通过答案捕获到第 0 组
  • 将问题编号捕获到第 1 组
  • 将问题的文本捕获到第 2 组
  • 捕获第 3 组的可能答案块
  • 捕获第 4 组的答案值
  • 允许所有标点符号,包括问号

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

在此处输入图像描述

例子

有关工作示例,请参见此处: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最后都会有一个。

于 2013-06-28T03:30:20.170 回答