簡體   English   中英

.lower()和同一行中的正則表達式?

[英].lower() and a regular expression in the same line?

我有一個消除所有非字母字符的正則表達式

def genLetters(string):
  regex = re.compile('[^a-zA-Z]')
  newString = regex.sub("", string)  

如果我想將此字符串設為小寫,則必須定義一個新字符串(因為它們是不可變的),例如
lowerString = newString.lower()
對我來說似乎很愚蠢,我只是不得不做第二個字符串才能降低音量,但是如果我從正則表達式中刪除AZ ,我會丟失所有不需要的大寫字符。 我只想要所有小寫字母的最終產品。

可以在沒有lowerString甚至更低的情況下完成此操作,可以在一行中完成嗎?

newString = regex.sub("", string).lower()

嘗試將“函數返回”視為“用函數的返回值替換函數調用”。 例如,在上述情況下, regex.subregex.sub求值,並且您應該想象該調用將被返回值替換:

newString = "some String after substitution".lower()

這意味着您可以對regex.sub返回值上的字符串執行所有regex.sub 您還可以在lower()的返回值上調用方法。

這也意味着您可以一次完成全部功能!

newString = re.compile('[^a-zA-Z]').sub("", string).lower()

盡管這可能不太可讀。

順便說一句,在Python標准命名約定是不是駱駝,但用下划線,所以newStringnew_string

暫無
暫無

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

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