前提・実現したいこと
Rubyの文字列マッチを使って文章の並び替えをしようと思っています。
具体的には以下のような文章を(カッコは全角カッコで空白は全角スペースです)
(未成年者の法律行為)
第五条 未成年者が法律行為をするには、その法定代理人の同意を得なければならない。ただし、単に権利を得、又は義務を免れる法律行為については、この限りでない。
2 前項の規定に反する法律行為は、取り消すことができる。
3 第一項の規定にかかわらず、法定代理人が目的を定めて処分を許した財産は、その目的の範囲内において、未成年者が自由に処分することができる。目的を定めないで処分を許した財産を処分するときも、同様とする。
(未成年者の営業の許可)
第六条 一種又は数種の営業を許された未成年者は、その営業に関しては、成年者と同一の行為能力を有する。
2 前項の場合において、未成年者がその営業に堪えることができない事由があるときは、その法定代理人は、第四編(親族)の規定に従い、その許可を取り消し、又はこれを制限することができる。
というものを
第五条 (未成年者の法律行為)
未成年者が法律行為をするには、その法定代理人の同意を得なければならない。ただし、単に権利を得、又は義務を免れる法律行為については、この限りでない。
2 前項の規定に反する法律行為は、取り消すことができる。
3 第一項の規定にかかわらず、法定代理人が目的を定めて処分を許した財産は、その目的の範囲内において、未成年者が自由に処分することができる。目的を定めないで処分を許した財産を処分するときも、同様とする。
第六条 (未成年者の営業の許可)
一種又は数種の営業を許された未成年者は、その営業に関しては、成年者と同一の行為能力を有する。
2 前項の場合において、未成年者がその営業に堪えることができない事由があるときは、その法定代理人は、第四編(親族)の規定に従い、その許可を取り消し、又はこれを制限することができる。
と並び替えしたいわけです。文章のまとまりを1)(趣旨) 2)第~条 3)条文の内容に分けて、それぞれ配列arr1,arr2,arr3に格納していけばできるのでは?と作っているところです。
発生している問題・エラーメッセージ
問題は、3)条文の内容を配列に入れると改行で区切られてしまうということです。
arr3[0]="未成年者が法律行為をするには、その法定代理人の同意を得なければならない。ただし、単に権利を得、又は義務を免れる法律行為については、この限りでない。\n
2 前項の規定に反する法律行為は、取り消すことができる。\n
3 第一項の規定にかかわらず、法定代理人が目的を定めて処分を許した財産は、その目的の範囲内において、未成年者が自由に処分することができる。目的を定めないで処分を許した財産を処分するときも、同様とする。\n"
arr3[1]="一種又は数種の営業を許された未成年者は、その営業に関しては、成年者と同一の行為能力を有する。\n
2 前項の場合において、未成年者がその営業に堪えることができない事由があるときは、その法定代理人は、第四編(親族)の規定に従い、その許可を取り消し、又はこれを制限することができる。\n"
としたいのに
arr3[0]="未成年者が法律行為をするには、その法定代理人の同意を得なければならない。ただし、単に権利を得、又は義務を免れる法律行為については、この限りでない。\n"
arr3[1]="2 前項の規定に反する法律行為は、取り消すことができる。\n"
arr3[2]="3 第一項の規定にかかわらず、法定代理人が目的を定めて処分を許した財産は、その目的の範囲内において、未成年者が自由に処分することができる。目的を定めないで処分を許した財産を処分するときも、同様とする。\n"
arr3[3]="一種又は数種の営業を許された未成年者は、その営業に関しては、成年者と同一の行為能力を有する。\n"
arr3[4]="2 前項の場合において、未成年者がその営業に堪えることができない事由があるときは、その法定代理人は、第四編(親族)の規定に従い、その許可を取り消し、又はこれを制限することができる。\n"
と、マッチングが改行で区切られてしまいます。
該当のソースコード
Ruby
1 i = 0 2 j = 0 3 k = 0 4 arr1 = [] #(未成年者の法律行為),(未成年者の営業の許可)を入れる 5 arr2 = [] #第五条,第六条を入れる 6 arr3 = [] #条文の内容を入れる 7 tmp = str.each_line do |line| #strは元の文章 8 if /(.+)\n/ =~ line 9 arr1[i] = $& 10 i = i +1 11 end 12 13 if /第.+条 / =~ line 14 arr2[j] = $& 15 j = j +1 16 end 17 18 if / .+\n/ =~ line 19 arr3[k] = $& 20 k = k +1 21 end 22 end
何かよい表現方法はないでしょうか? ご教授願います
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/06 05:33
2021/06/06 06:08
2021/06/07 13:00