15

数値を含む文字列のすべての世界を削除できる Python 正規表現を作成しようとしています。

例えば:

in = "ABCD abcd AB55 55CD A55D 5555"
out = "ABCD abcd"

削除番号の正規表現は自明です。

print(re.sub(r'[1-9]','','Paris a55a b55 55c 555 aaa'))

しかし、数字だけでなく単語全体を削除する方法がわかりません。

私を手伝ってくれますか?

4

3 に答える 3

26

正規表現が必要ですか?次のようなことができます

>>> words = "ABCD abcd AB55 55CD A55D 5555"
>>> ' '.join(s for s in words.split() if not any(c.isdigit() for c in s))
'ABCD abcd'

本当に正規表現を使用したい場合は、次を試すことができます\w*\d\w*

>>> re.sub(r'\w*\d\w*', '', words).strip()
'ABCD abcd'
于 2013-08-06T13:55:46.503 に答える
13

これが私のアプローチです:

>>> import re
>>> s = "ABCD abcd AB55 55CD A55D 5555"
>>> re.sub("\S*\d\S*", "", s).strip()
'ABCD abcd'
>>>
于 2013-08-06T14:01:29.863 に答える
1

以下のスニペットのコードは、数字のみが混在する単語を削除します

string='1 私は 20 歳で、体重は 65 ~ 70 kg です '

string=re.sub(r"[A-Za-z]+\d+|\d+[A-Za-z]+",'',string).strip()

プリント

出力:

年齢が65~70kgで体重が65~70kgの方

于 2021-04-07T18:56:33.073 に答える