如何解决如何从字符串中删除数字和括号?
我遇到以下问题,我的文本中包含这样的行:
20 luz de las remotísimas estrellas.
当我说“像这样”时,我的意思是在左侧带有该数字,表示该章的内容。 我也有一些与此相关的行:
es ya una distracción en esta ociosidad perdurable! (P126)
这些行指示这本书的新一页。
问题是,是否有一种简单的方法从行中删除这些数字和括号? 我已经使用过正则表达式来消除带有数字的“ []”,但我并不完全理解。
解决方法
您可以使用组
在这种情况下,我假设您要从“ 20 luz de lasremotísimasestrellas”中删除20个,而从“ es ya unadistracciónen esta ociosidad perdurable!(P126)”中删除(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)。
请让我知道这个答案是否有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。