0

文を分割するための正規表現が必要です。
文を分割するには正規表現のアプローチが必要です。
次の文構造は、構成要素に分割する必要があります。

Question、Options、AnswerType を次のデリミタで割ったもの...

Question :  OptionA, OptionB, OptionC   ?   AnswerType

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

ご覧のとおり、2 番目の例にはオプションがなく、これを考慮する必要があります。出力は理想的には次のグループのようになります

それが違いを生む場合、私は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 に答える