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