環境: Python 3.7.6
reモジュールを使って、リスト内の数字を含む文字列を抽出したいです。
import re sample = ['は3週間後', 'HJ2021', '書き溜め10万文字', '起承転結の4話完結', '第2次大戦', 'HSF杯2009', '美少女3姉妹?', '小学1年生', 'R-15G', '30分チャレンジ', '300文字', '15話完結',] [s for s in sample if re.match('\d', s)]
sample内の全ての文字列が数字を含んでいるのでmatchするかと思うのですが、これを実行すると、
['30分チャレンジ', '300文字', '15話完結']
となり、抽出されない文字列があります。予想としては『「3週間」「2021」は時間を表すから単なる数字ではない、同じく「3姉妹」「1年生」などは人を表しているから数字ではない。』みたいなことかなとチラッと思います。(でも、30分は時間じゃないの? R-15Gは何で弾かれるの? 4話がダメで15話がOK?? とかイマイチしっくりきません。)
私が求めているのは そんな高度なことではなく、単純に半角か全角の数字を含む文字列を全部抽出したいというだけなのですが、なぜこのような結果になるのでしょうか? 私の意図のように動く、別のやり方がございますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/07 11:55