C#Regex:如何分解纯文本字符串

时间:2014-01-18 04:31:58

标签: c# regex string list file-io

我有一个问题,我想知道如何解决。

我有一个字符串,我从一个包含问题列表的pdf文件中读到。 它的格式为:

  

问题编号:1

     

xxxxxxx(问题文本)

     

A)xxxx(多选)B)xxxx C)xxxx ......

     

答案:xxxxx

     

问题编号:2

     

xxxxxxx(问题文本)

     

......(等)

列表中有大约200个问题。

我正在尝试使用正则表达式来分解文本,因此每个问题都可以在一个单独的字符串中。

我之前用html和xml文档完成了这个,但它们很简单,因为有很多识别标签,如双引号,括号和圆括号。

但我对如何用文本做这件事毫无头绪。我尝试了很多组合,但似乎我无法获得正确的格式:

var questionPattern = @"QUESTION NO:(.*)QUESTION NO:";
var questionMatch = Regex.Matches(pdfText, questionPattern, RegexOptions.Singleline);

我想知道,有办法吗?

var questionPattern = @"(?<=QUESTION NO:)[^QUESTION NO:]*";

[^QUESTION NO:]*读取每个问题标题后的所有内容,直到下一个问题标题停止为止?

显然这是错误的格式,但我希望人们能理解我想要达到的目标。

非常感谢任何帮助 谢谢!

1 个答案:

答案 0 :(得分:2)

这可能是你得到的最好的 - 取决于答案。前瞻需要有条件,并且会破坏整个表达。

(QUESTION NO: \d+[\S\s]*?Answer.*\n*)

工作示例:http://regex101.com/r/nC6yA1