删除匹配特定模式的字符串中的字符

时间:2020-10-08 12:56:54

标签: python regex

我想知道是否存在一些正则表达式或可以用来删除实例的示例,这些实例中我有3个字母,后跟一个数字?

例如,我有这个语料库

c = [CLE2 - Single Smalls station 117,
HOU2 - mathdenn,
[SAT2] Pack Singles > Line 7 > Station 04 Kiosk Ticket - ZT410 Shipping Label Not Printing Correcly,
[HOU2] Multiple GW Stations Down in AFE2]

我想应用一些函数,然后返回

c = [Single Smalls station 117
 - mathdenn,
 Pack Singles > Line 7 > Station 04 Kiosk Ticket - ZT410 Shipping Label Not Printing Correcly
 Multiple GW Stations Down in ]

寻找完美的pythonic方法来实现这一目标。我在网上稍微通读了正则表达式,但没有找到一种方法来指定要删除的实例,该实例中我们有3个字符后跟一个数字,因此我不会说这回答了我的问题。

我试图做这样的事情:

regex = re.compile('[a-z][0-9]')
regex.findall(corpus[0])

但是这只会返回实例,其中我们有一个字符,后跟一个数字。也许对此有某种修改?

1 个答案:

答案 0 :(得分:1)

这是Python方式:

import re

c = '''[CLE2 - Single Smalls station 117,
HOU2 - mathdenn,
[SAT2] Pack Singles > Line 7 > Station 04 Kiosk Ticket - ZT410 Shipping Label Not Printing Correcly,
[HOU2] Multiple GW Stations Down in AFE2]'''

for substr in re.findall(r'\W([A-Z][A-Z][A-Z]\d)\W', c):
    c = c.replace(substr, '')
c = c.replace('[]', '')
print(c)
相关问题