gpt4 book ai didi

C# 正则表达式 : How to break up plain text string

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:42 24 4
gpt4 key购买 nike

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

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

QUESTION NO: 1

xxxxxxx (question text)

A) xxxx (multiple choice) B) xxxx C) xxxx ...

Answer: xxxxx

QUESTION NO: 2

xxxxxxx (question text)

.... (etc)

列表中大约有 200 个问题。

我正在尝试使用 Regex 来分解文本,以便每个问题都可以在一个单独的字符串中。

我以前用 html 和 xml 文档做过这件事,但它们很容易,因为有很多识别标记,如双引号、方括号和圆括号。

但是我不知道如何只用文本来做到这一点。我尝试了很多组合,但似乎无法获得正确的格式:

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

我在想,有什么办法可以做到:

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

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

显然这是错误的格式,但我希望人们能理解我的意思。

如有任何帮助,我们将不胜感激。
谢谢!

最佳答案

这可能是您将获得的最好结果 - 取决于 Answer。前瞻需要有条件,并且会破坏整个表达式。

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

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

关于C# 正则表达式 : How to break up plain text string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21200005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com