dポイントプレゼントキャンペーン実施中!

こんにちは。

先日Rubyでとあるファイルから特定の文字列を取得するプログラムを組んでおりましたところ、正規表現は合っていそうなのに取得できない場合がありましたので質問させていただきました。

<h6 class="smt_head5" style="padding-left: 27pt; padding-right: 0pt; margin-top: 0pt; margin-bottom: 0pt; text-indent: 0pt; font-family: 'MS 明朝'; text-align: justify; letter-spacing: 0pt; line-height: 15pt;">イ 保有目的が純投資目的以外の目的である投資株式</h6><p class="smt_text5" style="text-align: justify; padding-left: 40pt; padding-right: 0pt; margin-top: 0pt; margin-bottom: 0pt; text-indent: 9.9pt; font-family: 'MS 明朝'; letter-spacing: 0pt; line-height: 14pt;">銘柄数             5銘柄</p><p class="smt_text5" style="text-align: justify; padding-left: 40pt; padding-right: 0pt; margin-top: 0pt; margin-bottom: 0pt; text-indent: 9.9pt; font-family: 'MS 明朝'; letter-spacing: 0pt; line-height: 14pt;">貸借対照表計上額の合計額   299,505千円</p><p class="smt_text6" style="text-align: justify; padding-right: 0pt; margin-top: 0pt; margin-bottom: 0pt; font-family: 'MS 明朝'; letter-spacing: 0pt; line-height: 14pt;"> </p><p style="page-break-before: always; line-height: 0.75pt; width: 100%; font-size: 0.75pt;"></p><h6 class="smt_head5" style="padding-left: 36pt; padding-right: 0pt; margin-top: 0pt; margin-bottom: 0pt; text-indent: -9pt; font-family: 'MS 明朝'; text-align: justify; letter-spacing: 0pt; line-height: 15pt;">ロ 保有目的が純投資目的以外の目的である投資株式の保有区分、銘柄、株式数、貸借対照表計上額及び保有目的</h6><p class="smt_text5" style="padding-left: 36pt; text-indent: 9pt; line-height: 15pt;">(前事業年度)</p>

上記のような文字列を、

text = ""
4
5 data = File.open(fpath) do |f|
6
7 f.each_line do |line|
8
9 line.gsub!(/前事業年度特定投資株式/,"前事業年度")
10 line.gsub!(/当事業年度特定投資株式/,"当事業年度")
11
12
13 line.gsub!(/保有目的が純投資目的である/,"EOF")
14 line.gsub!(/保有目的が純投資目的の/,"EOF")
15
16 next unless line =~ /保有目的が純投資目的以外/ .. line =~ /EOF/
17 text << line.chomp unless line =~ /^\s+$/
18
19
20 end
21 end

以下のような文字列で取得しようとしたのですが、「保有目的が純投資目的以外」の部分にひっかかりませんでした。
また別の文字列中にある「保有目的が純投資目的である」の部分をEOFに置換する行程もおそらく作動していないと思われます。

どうしたら正しく取得できるでしょうか?ご教授お願い致します。

A 回答 (1件)

単純な文字列なので、タイプミス(コピペミス)がない限りマッチします。



あと、文字コードは合ってますか?まあ、文字コードが合ってないと全くマッチしないでしょうけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!