2016-12-14 8 views
0

特定のパターンに基づいてテキストの要素を認識するパーサーを作成しました。 私のプログラムは、段落や章などを認識することができます。問題は、引用符があるときに要素を認識すべきではないということです。たとえば、Ruby - 特定の方法で実行するプログラムを停止する

Paragraph 1 
Something here... 

は段落として処理されます。 および:

Paragraph 1 
    "Paragraph 2" 

は含まないでください。しかし、私のプログラムは正規表現パターンに基づいているので、 "Paragraph"という単語を探します。私は行ごとに行って、各行のパターンを認識します。私は私のプログラムを伝える方法を知らない:あなたが引用符を見たら、何もせずにテキストだけを残す?私のメンターは私にraiseを使うように言ったが、どうやってそれをするのか分からない。

+0

これまでに何を試しましたか?その出力/エラーを含めて、あなたのコードを投稿に含めてください。 –

+0

_Sidenote:_ここで 'raise'を使うアドバイスは、ええと...少し奇妙です。 '/(?<!")段落/ '。 – mudasobwa

+0

私たちにそれを見せないと、あなたの現在の実装を改善するにはどうすればいいですか? – ndn

答えて

0

私はまだ初心者ですが、引用符の中のものを無視するよう正規表現を指示する方法があるかどうかはわかりませんが、この問題を解決したい場合は、まずパースされるテキストのコピー、その上で正規表現を実行し、引用符の中のすべてを削除してから、残りのテキストにパーサを実行します。

kludgyとinelegantのビットがありますが、十分な大きさのテキストに対してパフォーマンスの問題があるかもしれませんが、それは仕事を完了させるでしょう。

ruby​​ regexのドキュメントへのリンクについては、HEREを参照してください。ダウン道の約3分の1は、引用符について説明します。

/\ P {パイ}/- '句読点:初期見積もり'

/\ P {Pfを}/- '句読点:最終見積もり'

引用符で囲まれた項目を無視するように^を使って正規表現にそれを焼くことができるかもしれません。

+0

何が答えているのかわからないまた、ドキュメントにリンクするときには、 dは可能な限り現在のバージョンにリンクしています。これは2.3.3です。 – tadman

関連する問題