下記のget_hash_tagsメソッドにdescriptions のようなリストを入力すると文字列からハッシュタグを含むものを配列として出力したいです。
しかし要素1,2で'#8#9#10#11#12#13#14'や'#18#19#20#21'のように連結した文字列は下記のような正規表現では抽出できません。
連結された文字列も#で囲まれていたら配列として同時に変換したいです。
import re def get_hash_tags(ds): y = lambda x: re.findall(r'(#[^\s]+)', x) return map(lambda x: y(x), ds) description = ["1 #2 #3 #4 #5 #6 #7", "#8#9#10#11#12#13#14", "#15 aaa#16 #17 #18#19#20#21", "#22 #23 bbb#24 25", "ccc#27 #28 ddd #29 #30 #31"] # #30と#31の間には全角スペースが入っている res = list(get_hash_tags(descriptions )) print(res) # [['#2', '#3', '#4', '#5', '#6', '#7'], ['#8#9#10#11#12#13#14'], ['#15', '#16', '#17', '#18#19#20#21'], ['#22', '#23', '#24'], ['#27', '#28', '#29', '#30', '#31']]
最終的には下記のような結果を出力するにはどのようにしたらよいでしょうか?
ご教授お待ちしております。
print(res) # [['#2', '#3', '#4', '#5', '#6', '#7'], ['#8', '#9', '#10', '#11', '#12', '#13', '#14'], ['#15', '#16', '#17', '#18', '#19', '#20', '#21'], ['#22', '#23', '#24'], ['#27', '#28', '#29', '#30', '#31']]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/06 10:10