簡體   English   中英

在保留字母數字詞的同時從字符串中刪除數字

[英]Removing numbers from string while keeping alphanumeric words

我想刪除數值而不丟失作為字符串中字母數字單詞一部分的數字。

String = "Jobid JD123 has been abended with code 346"

Result = "Jobid JD123 has been abended with code"

我正在使用以下代碼:

result = ''.join([i for i in String if not i.isdigit()])

結果是“ Jobid JD has been abended with code

無論如何我們可以刪除只包含數字的單詞,同時保留包含字母和數字混合的單詞嗎?

您可以使用正則表達式查找兩個單詞邊界\b之間的一個或多個數字\d+的運行,並將它們替換為空。

>>> import re
>>> string = "Jobid JD123 has been abended with code 346"
>>> re.sub(r"\b\d+\b", "", string).strip()
'Jobid JD123 has been abended with code'

請注意,正則表達式不會去掉尾隨空格( "code"和數字之間),因此您需要strip()的結果re.sub()

使用.isnumeric()刪除任何不只包含數字的單詞:

s = "Jobid JD123 has been abended with code 346"
result = ' '.join(c for c in s.split() if not c.isnumeric())
print(result)

這輸出:

Jobid JD123 has been abended with code 

將字符串split為單詞並檢查整個單詞是否為數字

Result = " ".join(word for word in String.split() if not word.isnumeric())

>>> Result
'Jobid JD123 has been abended with code'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM