[英]How to remove numbers and parenthesis from string?
我有以下問題,我的文本中有一些這樣的行:
20 luz de las remotísimas estrellas.
當我說“像這樣”時,我的意思是左邊的那個數字,表示章節的行。 我也有一些有這個的行:
es ya una distracción en esta ociosidad perdurable! (P126)
有線條表示書的新頁面。
問題是,是否有一種簡單的方法可以從行中刪除這些數字和括號? 我已經使用正則表達式來消除里面有數字的“[]”,但我並不完全理解它。
您可以使用組
在這種情況下,我假設您想從“20 luz de las remotísimas estrellas”和“es ya una disstracción en esta ociosidad perdurable! (P126)”中刪除 20 和 (P126)
對於兩者,您都可以使用此功能
import re
def clean_line(line):
regex = r"(\d*)?([^\(]*)(\(P\d+\))?"
return re.match(regex, line).group(2)
我們在這里分組,使用正則表達式,您可以使用括號對匹配的部分進行分組,實際上我們在這個正則表達式中得到了三個組:
(\\d*)捕獲任意數量的數字。
([^(]*)捕獲一個字符串,直到它找到一個 '('
((P\\d+))以 '(P number )' 形式捕獲字符串,其中number是任何正整數。
這 ? 標記表示之前的組是可選的。
由於我們對第二組感興趣,而 0 組是為整個正則表達式捕獲的字符串,因此我們在 in 上調用 group(2)。
請讓我知道這個答案是否有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.