[英]To replace the digits in the string with # and remove all the characters which are not digits
[英]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.