0

テキスト ドキュメントから選択式の質問を抽出するにはどうすればよいですか。各質問は数字とドットで始まります

1. Any Text _____ Goes here, And end with ? Or . And also can contain another paragraph.
a) possible
b) use regex
c) not possible
d) I dont know

Ans: b

上記は、質問がどのように見えるかの例です。テキストファイルには、いくつかの空白といくつかのエッセイの書き込みが含まれていますが、私は多肢選択問題の部分だけが必要ですAns:...。すべての質問には、a、b、c、および d の回答があります。

正規表現を使用できるように、テキストを Dreamweaver にコピーしました。

4

2 に答える 2

1

「1. 任意のテキスト _ がここに入ります。最後に ? または .」

正規表現でこれに変換できます:

    \d+\.[^\?\.]*[\?\.]

正規表現イメージ

それはあなたのために働きますか?これは、最後まで質問内に疑問符やピリオドがないことを前提としています...しかし、それはあなたが暗示したことでもあります。

編集:質問自体だけでなく回答が必要であり、他のタイプの質問を区別したいので、これを試してください:

([ \t]*\d+\.[^\n]+\n(?:[ \t]*[a-zA-Z]\)[^\n]+\n)+[\s]*Ans:[^\n]*)

正規表現イメージ

Debuggex でライブ編集

于 2013-06-27T19:16:02.183 に答える
0

説明

この式は次のようになります。

  • グループ 0 への回答までの質問全体をキャプチャします。
  • 質問番号をグループ 1 に取り込みます
  • 質問のテキストをグループ 2 に取り込む
  • グループ 3 に対する可能な回答のブロックをキャプチャする
  • グループ4への回答値をキャプチャ
  • 疑問符を含むすべての句読点を許可する

^(\d+)\.\s*(.*?)[\r\n\s]+(^a\).*?)[\r\n\s]+Ans:\s+([a-z]+\b)

ここに画像の説明を入力

実際の例については、こちらを参照してください: http://www.rubular.com/r/RQoobTedtg

サンプルテキスト

12. Any Text _ Goes here, And end with ? Or . And also can contain another paragraph.
a) Q1 possible
b) Q1 use regex
c) Q1 not possible
d) Q1 i dont know

Ans: a

Do you like kittens or other random text?

24. Second question is here
a) Q2 possible
b) Q2 use regex
c) Q2 not possible
d) Q2 i dont know

Ans: b

マッチ

Match 1
1.  12
2.  Any Text _ Goes here, And end with ? Or . And also can contain another paragraph.
3.  a) Q1 possible
    b) Q1 use regex
    c) Q1 not possible
    d) Q1 i dont know
4.  a

Match 2
1.  24
2.  Second question is here
3.  a) Q2 possible
    b) Q2 use regex
    c) Q2 not possible
    d) Q2 i dont know
4.  b

ノート

この正規表現は、各質問の最後に があることを前提としていAns: xます。

于 2013-06-28T03:30:20.170 に答える