こんばんは。
文章の先頭に指定した文字列を指定した箇所(文頭)のみに追加したいと思っているのですが、
どうもうまくいかないため質問させていただきました。
(1)全角英数字を正規表現で取得できていない
(2)unless文の後の条件の複数指定が機能せずエラーになる
(3)sub!で置換する以外に文字の追加方法はないか
(4)unlessで条件指定しない場合、すべての行の頭に「当事業年度」という文字がついてしまう
上記4つがうまくいっていない要因です。
(3)に関してはinsertを他の手段として考えています。
以下プログラムです。
text.each_line do |t|
56
57 case t
58 when/前事業年度\t銘 柄/
59 flag = true
60 when/前事業年度\t当事業年度/
61 flag = false if flag == true
62 end
63
64 t.sub!(/^(\p{Katakana}|[一-龠々]|\w|(株)|\p{Hiragana}|[:upper:]{0,20}[1-9])/) {|d| "前事業年度\t#{$1}"} unless flag == false && /当事業年度/
65 t.sub!(/^(\p{Katakana}|[一-龠々]|\w|(株)|\p{Hiragana}|[:upper:]{0,20}[1-9])/) {|d| "当事業年度\t#{$1}"} unless flag == false && /前事業年度/
変換したい文章は以下のものです。
前事業年度銘 柄株式数(株)貸借対照表計上額(百万円)保有目的
株式会社日本触媒6,338,000株7,726,000,000円当社グループの主要原料供給元であり、取引関係強化の一環として保有している。
ユニ・チャーム株式会社278,100株1,533,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
栗田工業株式会社572,600株1,282,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
JXホールディングス株式会社2,477,050株1,231,000,000円当社グループ製品の販売先および主要原料供給元である企業の持株会社であり、取引関係強化の一環として保有している。
KPXChemical158,621株967,000,000円KPXChemical設立時に出資しており、協力関係維持のため保有している。
株式会社ブリヂストン194,000株710,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
関西ペイント株式会社214,225株315,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有(取引先持株会による定期買付)している。
当事業年度銘 柄株式数(株)貸借対照表計上額(百万円)保有目的
KPXHoldings58,990株284,000,000円上記KPXChemicalの株式を40%保有する大株主であり、協力関係強化のため保有している。
大日精化工業株式会社524,000株250,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
高圧ガス工業株式会社424,000株241,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
サカタインクス株式会社202,000株196,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。地元企業との関係強化のため保有している。
株式会社松風138,000株120,000,000円地元企業との関係強化のため保有している。
コニシ株式会社50,000株91,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
稲畑産業株式会社66,000株69,000,000円当社グループ製品の販売および原料購入における代理店であり、取引関係強化の一環として保有している。
日本特殊塗料株式会社112,000株68,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
電気化学工業株式会社142,000株50,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
株式会社三菱ケミカルホールディングス104,500株44,000,000円当社グループ製品の販売先および主要原料供給元である企業の持株会社であり、取引関係強化の一環として保有している。
長瀬産業株式会社31,000株39,000,000円当社グループ製品の販売および原料購入における代理店であり、取引関係強化の一環として保有している。
横浜ゴム株式会社36,000株34,000,000円当社グループ製品の販売先であり、取引関係強化の一環として保有している。
前事業年度から下の7行の文頭に「前事業年度」という文字を追加し、
当事業年度から下の行の文頭に「当事業年度」という文字を追加することが目標です。
どうかご教授のほどよろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
以下のようにしてください。
---------------------------------------
# ファイル名はsample.htmlとする
data = "./sample.html"
text = File.open(data)
flag = nil
text.each_line do |t|
skip = false
case t
when/前事業年度銘 柄株式数/
flag = true
skip = true
when/当事業年度銘 柄株式数/
flag = false
skip = true
end
if /^\s*$/ =~ t
skip = true
end
if skip == false
if flag == true
t = "前事業年度" + t
end
if flag == false
t = "当事業年度" + t
end
end
#print t
end
----------------------------------------
whenの行は、前事業年度銘□□□柄株式数
としています。(□は全角空白1文字)
もし、実際のファイルに 前事業年度 と 銘□□□柄株式数 の間に タブがある場合は
\t を入れてください。(当事業年度も同様)
考え方は、以下の通りです。
「前事業年度 と 銘□□□柄株式数」を検知したとき、
その行はスキップし、以降の行の先頭に 「前事業年度」を付加する。
但し、全てが空白の行はスキップする。
当事業年度も同様。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「&」 「<<」 「|」 につ...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
【ExcelVBA】300万件越えCSVか...
-
verilog HDLについての質問です...
-
Excelマクロ 空白セルを無視し...
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
Sikulix2.0.5(Jython2.7.3)でcs...
-
fortranでNAのあるデータを読み...
-
型の値をDataGridViewセルに変換...
-
rubyを用いたCSVファイルの分割...
-
fgetsの処理を詳しく説明してく...
-
CSVデータの文字列置換
-
Rubyでファイルの名前をリネイ...
-
VB.netでShellExecuteがしたい
-
pythonによるcsv出力がうまくい...
-
FileListBoxで出すものを絞り込...
-
複数のファイルをまたぐエクセ...
-
[コンパイルエラー 修飾子が不...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Rubyにおける、XPathの関数「te...
-
Ruby 改行文字の挿入
-
Ruby 正規表現で特定の文字を取...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
バッチ処理 特定の文字以降を...
-
Excelマクロ 空白セルを無視し...
-
【ExcelVBA】300万件越えCSVか...
-
VBAで複数のCSVからレコードセ...
-
INPUTタグ disabledの文字色を...
-
VBA テキストボックスを選択状...
-
fortranでNAのあるデータを読み...
-
ファイル名を変数で書きこむfwr...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
-
【C#】 csvファイルをバイナリ...
-
LibreOffice Calcのマクロで、...
-
SQLファイルの読み込み
-
VB.netでShellExecuteがしたい
-
CSVデータの文字列置換
おすすめ情報