0

需要用于句子拆分的正则表达式。
我需要一种正则表达式方法来拆分句子。
下面的句子结构需要分解成它的组成部分:

Question、Options、AnswerType 除以以下分隔符...

Question :  OptionA, OptionB, OptionC   ?   AnswerType

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

如您所见,第二个示例没有选项,需要考虑这一点。理想情况下,输出将类似于以下组

如果这有什么不同,我正在 VB.NET 中工作。

4

1 回答 1

1

我不知道正则表达式在 vb.net 中是如何工作的,但这是一个一般模式,并且在DEMO中得到了很好的解释

正则表达式:

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

?P< name> 确定用于反向引用该组的名称,您只需循环并将所有内容分组。

尝试带有(后缀)的新正则表达式:DEMO我只是在问题之后添加了(后缀)的可能性。

更新的正则表达式:

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

更新 2:使用空格和'->(?P<question>[\w '-]+)\s*(?P<suffix>\([\w '-]+\))?\s*(?::\s*(?P<options>[\w '-]+(?:,\s*[\w '-]+)*))?\s*\?\s*(?P<type>[\w '-]+)

演示

于 2012-11-05T08:12:42.840 回答