簡體   English   中英

如何從字符串中刪除數字和括號?

[英]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.

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