正则表达式将句子分成多个组

时间:2012-11-05 07:42:37

标签: regex vb.net split

需要句子分割的正则表达式。
我需要一个正则表达式来分割句子 以下句子结构需要分解为其组成部分:

问题,选项,AnswerType除以以下分隔符...

Question :  OptionA, OptionB, OptionC   ?   AnswerType

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

如您所见,第二个示例没有选项,需要考虑这一点。 理想情况下,输出看起来像以下组

如果有任何不同,我在VB.NET工作。

1 个答案:

答案 0 :(得分:1)

我不知道vge.net中的正则表达式是如何工作的,但这里有一个普遍的模式并在DEMO

中得到了很好的解释

正则表达式:

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

?P&lt;名称&gt;确定反向引用该组的名称,您只需循环,然后将所有内容分组。

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

更新的正则表达式:

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

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

DEMO

相关问题