簡體   English   中英

從字符串中刪除數字和所有連接字符

[英]Remove digits from a string and all connecting characters

對於我的問題的第一部分,我已經看到了許多解決方案,例如使用:

name = 'Example 01 string 1a%'
new_name = ''.join(i for i in name if not i.isdigit())
print(new_name)
>> 'Example  string a%'

但是,我希望 output 也將 2+ 個相鄰空格替換為僅一個空格,以及連接到已刪除數字(不包括空格)的任何字符,因此我在此示例中期望的結果將是:

>> 'Example string'

我知道要刪除例如雙空格,您可以簡單地使用:

new_name.replace('  ', ' ')

但是,這僅適用於雙空格。 我不確定如何將其擴展到任意數量,以防字符串具有多組數字,這些數字將被刪除並留下大量空間。

所以我的問題是,如何清理字符串以刪除數字和連接到這些數字的任何字符(不包括空格),然后用單個空格替換任何大組空格?

實現此目的的一種方法是通過內置的re庫使用正則表達式。

本質上, exp提取兩個或多個相鄰字母並將結果返回到一個列表中,該列表使用您當前使用的join function 轉換為字符串。

這種精確方法的警告是,搜索字符串的長度必須至少為兩個字母字符。 但是,如果您想增強表達式,正則表達式具有環視功能。

import re

name = 'Example 01 string 1a%'
exp = '([a-zA-Z]{2,})'

' '.join(re.findall(exp, name))

Output:

>>> 'Example string'

暫無
暫無

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

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