3

次のパターンに一致する正規表現を作成したかったのです。

5,000
2.5
25

これは私がこれまで持っている正規表現です:

re.compile('([\d,]+)')

どのように調整でき.ますか?

4

3 に答える 3

1

以下は、有効な数値を取得するための非常に大きく強力な正規表現です。

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']
于 2013-07-27T00:53:34.223 に答える