77798


文字列から、値部分のみを抽出したいのですが、実現するための正規表現が上手く書けず困っています。

※とあるデータのなかに、本来は【数値】のカラムがあるのですが、場合によっては「#」や「)」といった文字列が一緒に含まれているレコードがあるため、csv読み込み時に文字列と読み込まれてしまうので、数値部分のみを抽出したいと考えています。

例えば、"#5.3" や "5.3)" という文字列から、5.3 のみを抽出したいイメージです。

以下が試しているコードですが、こちらだと数字のみが抽出されてしまうため、「.（ドット）」を含めて抽出したいです。

[code]

    import re
    s = "5.3)"
    result = res = re.sub(r"\D", "", s)
    print(result)
    # 53
    
[/code]

アドバイスいただけますと幸いです。


CC BY-SA 4.0
2021-06-26T04:50:18.187
77797
2021-06-26T05:09:34.437
2021-06-26T05:09:34.437
3060
47038
question
python 正規表現
Python の正規表現で . (ドット) を含む数値のみを抽出したい


不要な文字の対象に `.` は含まれないと仮定して、例えば以下のような書き方ができると思います。

[code]

    result = res = re.sub(r"[^\d.]", "", s)
    
[/code]


CC BY-SA 4.0
2021-06-26T05:08:35.190
77798
2021-06-26T05:08:35.190
3060
77797
answer