文字列に含まれる数字をすべて抽出したいのですが、正規表現とメソッドのどちらが目的に適していますか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]
注意: これは負の整数には機能しません