次のパターンに一致する正規表現を作成したかったのです。
5,000
2.5
25
これは私がこれまで持っている正規表現です:
re.compile('([\d,]+)')
どのように調整でき.
ますか?
以下は、有効な数値を取得するための非常に大きく強力な正規表現です。
import re
string = """
5,000
2.5
25
234,456,678.345
...
,,,
23,332.1
abc
45,2
0.5
"""
print re.findall("(?:\d+(?:,?\d{3})*)+\.?(?:\d+)?", string)
出力:
# Note that it will not capture "45,2" because it is invalid
# It instead does "45" and "2", which are each valid
['5,000', '2.5', '25', '234,456,678.345', '23,332.1', '45', '2', '0.5']