需要句子分割的正则表达式。
我需要一个正则表达式来分割句子
以下句子结构需要分解为其组成部分:
问题,选项,AnswerType除以以下分隔符...
Question : OptionA, OptionB, OptionC ? AnswerType
EXAMPLES:
Color: Yellow, Green, Red ? ListBox
Color ? ListBox
如您所见,第二个示例没有选项,需要考虑这一点。 理想情况下,输出看起来像以下组
如果有任何不同,我在VB.NET工作。
答案 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 '-]+)