Pythonで文字列から数字を抽出するにはどうすればいいですか? 質問する

Pythonで文字列から数字を抽出するにはどうすればいいですか? 質問する

文字列に含まれる数字をすべて抽出したいのですが、正規表現とメソッドのどちらが目的に適していますかisdigit()?

例:

line = "hello 12 hi 89"

結果:

[12, 89]

ベストアンサー1

正規表現を使用します:

>>> import re
>>> re.findall(r'\d+', "hello 42 I'm a 32 string 30")
['42', '32', '30']

これは 42 にも一致しますbla42bla。単語の境界 (スペース、ピリオド、カンマ) で区切られた数字のみが必要な場合は、\b を使用できます。

>>> re.findall(r'\b\d+\b', "he33llo 42 I'm a 32 string 30")
['42', '32', '30']

文字列のリストではなく数値のリストを作成するには、次のようにします。

>>> [int(s) for s in re.findall(r'\b\d+\b', "he33llo 42 I'm a 32 string 30")]
[42, 32, 30]

注意: これは負の整数には機能しません

おすすめ記事