はじめまして。ご教授ください。pythonを勉強して2ヶ月程度です。
・python 3.10(PyCharm 2021.3.2 (Community Edition))
・win10pro
空行と改行を含む以下の文章を、改行ごとのまとまりを順にリストに入れてprint()で出力を考えています。正規表現で改行2つ以上の文節ごとに区切り、for文で繰り返しを考えていました。しかし、文節ごとをリストに入れるところでうまく動かず悩んでいます。
記載したコードはつまずいてしまったところまでで申し訳ありません。
【入力する文章】##は実際は改行or空白のみ
##改行1行目
##改行2行目+空白数文字(不定)
ドンペリドン錠10mg「aaaa」 1錠
吐き気ある時 10回分
##改行1行目
##改行2行目+空白数文字(不定)
##改行3行目
ブロムヘキシン塩酸塩錠4mg「bbb」 3錠
分3 朝・昼・夕食後
痰がひどい時 7日分
##改行1行目
##改行2行目+空白数文字(不定)
##改行3行目
以下、同様の区切りで続く
【実現したいこと】
①:['ドンペリドン錠10mg「aaaa」', '1錠', '吐き気ある時', '10回分']と2~3つの改行ごとでリストに入れる
②:①をprint()で出力後にリストを空にする
③:ブロムヘキシン塩酸塩錠4mg「bbb」から7日分までを空にしたリストに再度いれる
④:③を出力し、リストを空に。次の区切りをリストにいれて出力…を繰り返す。
python
1----------------------------------------------------------------------------- 2import re 3l = [] 4 5bun = '\n \nドンペリドン錠10mg「EMEC」 1錠 \n吐き気ある時 10回分\n \n\nブロムヘキシン塩酸塩錠4mg「サワイ」 3錠 \n分3 朝・昼・夕食後 6痰がひどい時 7日分\n \n\n' 7 8itizai = re.finditer(r'(\s.+\s)', bun, re.MULTILINE) 9 10for i in itizai: 11 print(f'{i.group()}') 12 13-----------------------------------------------------------------------------
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/18 14:43